准备工作
- 准备服务器:我们通过virtualbox建了四台虚拟器,配置都是2CPU,2G内存,硬盘自己设置,我设为128G.四台虚拟器的网路都选择桥接网络。
- 下载k3os-AMD64.iso
安装Master
- 安装k3os:启动master主机,通过命令sudo k3os install 安装k3os到硬盘,注意安装的时候选择Server,然后设置用户密码和token等。
- 修改hostname:安装完系统后,从硬盘启动。k3os安装的时候会自动设置了一个hostname为k3os-xxxx,这个hostname不是很好记,所以建议改一下。通过以下命令修改hostname为k3os-master1
sudo vi /var/lib/rancher/k3os/hostname
- 修改IP地址:由于我们选择的是桥接网络,为了防止虚拟器重启后IP地址发生变化,我们给master节点设置一个固定IP,命令如下。
$ sudo connmanctl services
*AO Wired ethernet_000c29229c3e_cable
*AR Wired ethernet_000c29229c48_cable
$ sudo connmanctl services --properties ethernet_000c29229c3e_cable # 查看某一网卡的详细信息
$ sudo connmanctl config ethernet_080027913d31_cable --ipv4 manual 192.168.2.221 255.255.255.0 192.168.2.1 --nameservers 61.177.7.1 # 修改IP地址
重启一下虚拟器,发现hostname和IP都已经改过来了。反之,如果我们设置了固定IP之后发现网络不可用,可以用过以下命令设置为自动获得IP。
$ sudo connmanctl config ethernet_080027913d31_cable --ipv4 dhcp
- 修改docker镜像代理:如果不修改docker镜像,那边pull镜像的时候会很慢,有时甚至根本pull不下来,所以我们需要设置一下docker的国内镜像。
$ cd /var/lib/rancher/k3s/agent/etc/containerd
$ cp config.toml config.toml.tmpl
$ vi config.toml.tmpl
在config.toml.tmpl文件最后加入镜像设置
# 在 config.toml.tmpl 文件中添加
[plugins.cri.registry.mirrors]
[plugins.cri.registry.mirrors."docker.io"]
endpoint = ["http://hub-mirror.c.163.com"]
重启master。运行以下命令,确认一下镜像是否已经改过来了。
sudo crictl info | grep registry
默认情况下,k3os主机是不允许通过ssh进行远程用户/密码访问的,如果我们需要从mac上ssh到k3os主机,则必须手动开启密码访问。
$ sudo vi /etc/ssh/sshd_config
把PasswordAuthentication no改为PasswordAuthentication yes
安装Agent
- 安装k3os:启动主机,通过命令sudo k3os install 安装k3os到硬盘,注意安装的时候选择Agent,并设置Server url为https://k3os-master1-ip:6443,然后设置用户密码和token等。
- 修改hostname:安装完系统后,从硬盘启动。然后修改hostname为k3os-node1
- 然后复制k3os-node1为k3os-node2,k3os-node3,分别修改node2,node3的hostname即可。
master上通过kubectl get node查看所有节点是否正常,如果agent无法找到,我们也可以通过以下命令手动添加节点到集群中。
sudo k3s agent -s https://192.168.57.29:6443 -t ${NODE-TOKEN} --with-node-id k3os-node3
node-token在master节点执行以下命令获得
sudo vi /var/lib/rancher/k3s/server/node-token
可以通过以下命令删除无效的节点
kubectl delete node k3os-xxxx
评论区