系统要求: Ubuntu 20.04 LTS, 18.04 LTS or 16.04 LTS或其他支持snapd的操作系统
内存:4G+
硬盘:20G+
sudo snap install microk8s --classic
添加当前用户到用户组
sudo usermod -a -G microk8s $USER
sudo chown -f -R $USER ~/.kube
修改别名 将kubectl定向为microk8s kubectl
vim ~/.bash_aliases
结尾加入一行 alias kubectl='microk8s kubectl'
然后断开连接重新登录
打开文件/var/snap/microk8s/current/args/containerd-template.toml
找到plugins."io.containerd.grpc.v1.cri".registry.mirrors."docker.io" 段, 将https://registry-1.docker.io改为https://xlx9erfu.mirror.aliyuncs.com,并添加k8s.gcr.io的镜像加速
[plugins."io.containerd.grpc.v1.cri".registry]
# 'plugins."io.containerd.grpc.v1.cri".registry.mirrors' are namespace to mirror mapping for all namespaces.
\[plugins."io.containerd.grpc.v1.cri".registry.mirrors\]
\[plugins."io.containerd.grpc.v1.cri".registry.mirrors."docker.io"\]
endpoint = \["https://xlx9erfu.mirror.aliyuncs.com"\]
\[plugins."io.containerd.grpc.v1.cri".registry.mirrors."k8s.gcr.io"\]
_endpoint = \["https://registry.cn-hangzhou.aliyuncs.com/google-containers"\]_
退出保存
重启microk8s
microk8s stop
microk8s start
每个节点都执行以上安装操作
然后主节点执行获取加入节点命令
microk8s add-node
会得到一堆命令,选择主节点局域网IP的那条复制到节点去执行
执行
microk8s config
可以复制到lens使用
也可生成到当前用户目录下使用kubectl
cd $HOME
mkdir .kube
cd .kube
microk8s config > config
执行命令 microk8s enable xxx
xxx即插件名,比较常用的有dns helm istio等,默认已经开启了很多插件如非必要是不需要再执行此步骤的
dns 容器网络, ha-cluster是高可用集群插件, helm类似应用商店, istio 服务网格
启用ha-cluster后需要节点执行重新加入
注意: 当前microk8s版本1.21 有个bug, 需要修改/var/snap/microk8s/current/var/lock/no-cert-reissue文件,避免其无法触发apiserver更新csr
sudo mv /var/snap/microk8s/current/var/lock/no-cert-reissue /var/snap/microk8s/current/var/lock/no-cert-reissue.back
编辑/var/snap/microk8s/current/certs/csr.conf.template文件, 找到alt_names节点, 刚安装完毕一般只到IP.3, 我们就可以再往后加IP.4 IP.5 一般就加其他的局域网IP,或者映射后的公网IP之类的
[ alt_names ]
DNS.1 = kubernetes
DNS.2 = kubernetes.default
DNS.3 = kubernetes.default.svc
DNS.4 = kubernetes.default.svc.cluster
DNS.5 = kubernetes.default.svc.cluster.local
IP.1 = 127.0.0.1
IP.2 = 10.152.183.1
IP.3 = 192.168.31.121
IP.4 = 192.168.192.121
更改完毕执行下
ll /var/snap/microk8s/current/certs/csr.conf*
查看下
csr.conf和csr.conf.rendered更新时间是不是大于等于csr.conf.template, 是的话就说明重新生成了csr,然后再执行
microk8s config
获取最新的kubeconfig就行,改下图中标红的ip, 粘贴到lens就能连接上了
最后再把前边改了的文件名改回去,当然,如果后续版本修复了这个问题也就不用再改名称了
sudo mv /var/snap/microk8s/current/var/lock/no-cert-reissue.back /var/snap/microk8s/current/var/lock/no-cert-reissue
sudo snap refresh microk8s --channel=1.21/stable
1.21换成对应版本号即可
microk8s kubectl drain
可以通过以下命令查看所有负载情况,对应节点应该只剩下daemonset的pod
microk8s kubectl get po -A -o wide
升级节点
sudo snap refresh --stable microk8s
查看节点情况,可以看到当前节点版本已升级到对应版本
microk8s.kubectl get no
恢复节点调度,
microk8s kubectl uncordon
每个节点重复一遍以上步骤,完成升级
恢复到上一个稳定版本
sudo snap revert microk8s
在节点执行
microk8s leave
在主节点执行,将
microk8s remove-node
最后在所有节点都执行
sudo snap remove microk8s
手机扫一扫
移动阅读更方便
你可能感兴趣的文章