安装
Microk8s的安装命令非常简洁,只需要运行如下命令:
sudo snap install microk8s --classic
该命令会自动安装当前的稳定版本,我安装的时候稳定版本是1.20,在安装的时候可以看到这样的输出:
$ sudo snap install microk8s --classic
Download snap "microk8s" (1864) from channel "1.20/stable" 25% 218kB/s 12.5m
当看到类似这样的输出的时候,就说明安装完成了。
microk8s (1.20/stable) v1.20.0 from Canonical✓ installed
接着让我们使用kubectl
命令来检查我们安装的集群状态:
sudo microk8s.kubectl get nodes
正常情况下应该看到的是这样的输出,显示我们的集群中有一个k8s工作节点,他的当前状态为Ready
。
NAME STATUS ROLES AGE VERSION
irving-workstation Ready <none> 3m27s v1.20.0-37+7ab055a22f5440
但是如果你使用的机器不能够科学上网的话,可能节点的状态会为NotReady
。接下来我会先介绍如何简化kubectl命令使用,接着介绍节点NotReady
情况下要怎么修复。
简化kubectl命令
解决每次kubectl
命令前面都必须要加上microk8s的问题,我们给microk8s.kubectl
取别名为mkubectl
:
sudo snap alias microk8s.kubectl kubectl
现在你可以简单用下面的命令再次查看集群中节点的状态了
kubectl get nodes
修改pod的sandbox
pod的sandbox 默认是 k8s.gcr.io/pause:3.1
,这个镜像是无法获取的。需要将sandbox修改为国内可以获取的镜像。
- 修改
/var/snap/microk8s/current/args/kubelet
。 添加--pod-infra-container-image=s7799653/pause:3.1
- 修改
/var/snap/microk8s/current/args/containerd-template.toml
的plugins -> plugins.cri -> sandbox_image
为s7799653/pause:3.1
- 重启服务
microk8s.stop
,microk8s.start
使用
$ microk8s kubectl get nodes
NAME STATUS ROLES AGE VERSION
vm-0-17-ubuntu NotReady <none> 2m7s v1.21.3-3+90fd5f3d2aea0a
$ microk8s kubectl get services
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
kubernetes ClusterIP 10.152.183.1 <none> 443/TCP 2m27s
# 检测服务状态
$ microk8s status --wait-ready
# 启用相关组建
$ microk8s enable dashboard dns registry istio
# 查看k8s
$ microk8s kubectl get all --all-namespaces
# 访问dashboard,此命令为前台进程,如果要后台运行,需要在最后增加 &
$ microk8s dashboard-proxy
# 使用以有kubectl管理
$ sudo microk8s kubectl config view --raw > $HOME/.kube/config
# 查看插件
$ microk8s.status
参考地址:
https://bbs.huaweicloud.com/blogs/296741
https://www.jianshu.com/p/3c2724f25c5e
https://www.jianshu.com/p/02fd2540fab2