Kubernetes 快速部署方法

安装 Docker

https://kubernetes.io/docs/setup/production-environment/container-runtimes/#docker

国内加速替换软件源

http://mirrors.ustc.edu.cn/

1
2
3
4
5
6
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key --keyring /etc/apt/trusted.gpg.d/docker.gpg add -

sudo add-apt-repository \
"deb [arch=amd64] http://mirrors.ustc.edu.cn/docker-ce/linux/ubuntu/ \
$(lsb_release -cs) \
stable"

安装 kubeadm

https://kubernetes.io/docs/setup/production-environment/tools/kubeadm/install-kubeadm/

Read more

基于 KVM 的开发环境搭建

创建虚拟机

首先下载 ubuntu cloud image 使用 virsh 参考这个教程创建虚拟机:

Using Cloud Images With KVM [2021-02-07].html

固定 IP

KVM libvirt assign static guest IP addresses using DHCP on the virtual machine - nixCraft [2021-02-07].html

SSH

如果 sshd 启动失败,报错 sshd: no hostkeys available -- exiting,需要执行:

1
ssh-keygen -A

sshd_ no hostkeys available – exiting [2021-02-07].html

克隆虚拟机

How to clone existing KVM virtual machine images on Linux - nixCraft [2021-02-07].html

Read more

youtube-dl 配置备忘

youtube-dl 下载配置:

/etc/youtube-dl.conf

1
2
3
4
5
6
7
8
9
-f bestvideo[ext=mp4]+bestaudio[ext=m4a]/bestvideo+bestaudio
--merge-output-format mp4
--add-metadata
--embed-thumbnail --embed-subs --all-subs --xattrs
--yes-playlist
--write-info-json
--output "%(uploader)s/%(playlist).40s/[%(upload_date)s] %(title).68s [%(id)s].%(ext)s"
--output-na-placeholder ""
--ignore-errors
Read more

K8s Node Docker devicemapper 设备初始化方法

步骤

  1. drain 掉节点上所有的 pod
1
kubectl drain <node-name> --ignore-daemonsets --delete-local-data --force
  1. 停止 kubelet
1
systemctl stop kubelet
  1. 停止所有容器
1
2
docker stop $(docker ps -a -q)
docker rm $(docker ps -a -q)
  1. 停止 docker daemon
1
systemctl stop docker
Read more

K8s 集群 master 节点迁移

背景

当前测试环境 K8s 集群 3 台 master 机器配置相对较高,之前为了充分利用资源将 workload 与 control plane + etcd 混部,这样大大降低了集群的稳定性,而 IaaS 层没有用虚拟化技术,不支持原地升级规格,因此我们决定通过迁移的方式来实现:

  1. 让 K8s master 组件独享 3 台机器,与 workload 分开部署
  2. 用 3 台性能较差的机器代替,避免资源浪费

旧的 master 节点为:oldmaster-1 oldmaster-2 oldmaster-3
新的 master 节点为:master-1 master-2 master-3

前置条件

检查客户端配置

  1. 检查所有 kubelet server 配置为 LB 地址

如果不是则改为 LB 地址

1
ansible all -m shell -a 'sed -i "s#server: https://.*#server: https://10.200.20.241:443#" /etc/kubernetes/kubelet.conf'
  1. 检查 kube-proxy server 配置为 LB 地址
1
kubectl -n kube-system get configmap kube-proxy -o yaml | sed 's#server: https://.*#server: https://10.200.20.241:443#' | kubectl apply -f -
  1. 检查所有 controller-manager 和 scheduler server 配置为本机 apiserver 6443 地址

  2. 确保所有业务方 kubeconfig 都使用 LB 地址

Read more

树莓派安装花生壳(动态 DNS)服务

下载

首先,下载花生壳 linux 版 phddns-2.0.2.16556.tar.gz 并解压:

1
2
wget http://download.oray.com/peanuthull/phddns-2.0.2.16556.tar.gz
tar -zxf phddns-2.0.2.16556.tar.gz

编译

进入目录,编译:

1
2
3
cd phddns-2.0.2.16556
./configure
make

编译后生成会在 src 目录生成可执行文件 phddns。

1
2
3
cd src
ls -l phddns
-rwxr-xr-x 1 root root 38880 Oct 14 16:04 phddns

运行

执行编译好的程序并配置(默认使用/etc/phlinux.conf,如果不存在这个文件则自动进入交互配置):

1
./phddns

根据提示配置后,程序将以交互模式开始运行。按 Ctrl + C 终止运行。

将 phddns 拷贝到你希望的位置:

1
cp phddns /usr/local/bin/

以 daemon 模式启动花生壳:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
/usr/local/bin/phddns -c /etc/phlinux.conf -d
phlinux started as daemon!

# tail /var/log/phddns.log
Wed Oct 14 16:06:20 2015| ExecuteUpdate Connecting PhLinux3.Oray.Net.
Wed Oct 14 16:06:20 2015| SEND AUTH REQUEST COMMAND...Wed Oct 14 16:06:20 2015| OK.
Wed Oct 14 16:06:20 2015| SERVER SIDE KEY "334 ************************" RECEIVED.
Wed Oct 14 16:06:20 2015| SEND AUTH DATA...Wed Oct 14 16:06:20 2015| OK
Wed Oct 14 16:06:21 2015| Need redirect, waiting for 5 seconds...
Wed Oct 14 16:06:26 2015| ExecuteUpdate Connecting phent-std.oray.net.
Wed Oct 14 16:06:26 2015| SEND AUTH REQUEST COMMAND...Wed Oct 14 16:06:26 2015| OK.
Wed Oct 14 16:06:26 2015| SERVER SIDE KEY "334 ************************" RECEIVED.
Wed Oct 14 16:06:26 2015| SEND AUTH DATA...Wed Oct 14 16:06:26 2015| OK
Wed Oct 14 16:06:26 2015| ExecuteUpdate domain "******.gicp.net"

查看进程 ID:

1
2
ps -A | grep phddns
239 ? 00:00:01 phddns

让后台进程退出:

1
kill 239

添加自启动

因为笔者的树莓派安装的是 archlinux,使用了 systemd,因此需要手动添加 phddns 服务实现自启。(当然添加命令至 rc.local 文件也可以,但已不推荐使用,如果有兴趣可以百度一下具体方法。)

1
vim /etc/systemd/system/phddns.service

输入以下内容并保存,用来添加服务。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
[Unit]
Description=phddns service
After=syslog.target network.target

[Service]
Type=oneshot
RemainAfterExit=yes

ExecStart=/usr/local/bin/phddns -c /etc/phlinux.conf -d
ExecReload=/usr/bin/kill -HUP $MAINPID
KillSignal=SIGQUIT
KillMode=mixed

[Install]
WantedBy=multi-user.target

然后启动该服务:

1
systemctl start phddns

使用 ps 查看是否运行成功,如果成功,将其设置为开机自启动:

1
systemctl enable phddns

Fedora 17 安装无线网卡驱动

1. 首先添加 RPM Fusion 源

一般情况下,Fedora 17 自带的软件源并不能满足我们的需求,有时在官方软件源搜索不到的软件,在 RPM Fusion 上往往可以搜索到(尤其是第三方软件与驱动)。因此,我们首先将 RPM Fusion 源添加到系统上:

参见:http://rpmfusion.org/Configuration,我们在终端中输入(针对于 Fedora 17):

1
su -c 'yum localinstall --nogpgcheck http://download1.rpmfusion.org/free/fedora/rpmfusion-free-release-stable.noarch.rpm http://download1.rpmfusion.org/nonfree/fedora/rpmfusion-nonfree-release-stable.noarch.rpm' 
Read more
Your browser is out-of-date!

Update your browser to view this website correctly.&npsb;Update my browser now

×