可以提前下载好传到所有节点中。
# grep image calico.yaml | grep -i calico | awk -F'/' '{print $2"/"$3 }' | uniq
# docker pull calico/cni:v3.24.5
# docker pull calico/node:v3.24.5
# docker pull calico/kube-controllers:v3.24.5
# docker save -o calico_image_3_24_5.tar.gz calico/cni:v3.24.5 calico/node:v3.24.5 calico/kube-controllers:v3.24.5
# scp calico_image_3_24_5.tar.gz root@node01:/root/
# scp calico_image_3_24_5.tar.gz root@node02:/root/
该操作所有节点上均要执行。
加载docker镜像到系统中。
# docker load -i /root/calico_image_3_24_5.tar.gz
安装calico插件
# kubectl apply -f calico.yaml
# kubectl get nodes -o wide -A
# kubectl get pod -o wide -A
图 1-1 最终结果
八、安装metrics-server
metrics-server可用于k8s集群资源使用监控。
访问网址:https://github.com/kubernetes-sigs/metrics-server 在页面中下拉找到 Installation 章节,找到如下的信息: kubectl apply -f https://github.com/kubernetes-sigs/metrics-server/releases/latest/download/components.yaml ,截取蓝色高亮部分内容,在Master节点上执行命令下载conponents.yaml文件。
下载metrics-server软件
# wget https://github.com/kubernetes-sigs/metrics-server/releases/download/v0.6.1/components.yaml
# #查看components.yaml所需要镜像及版本,提前下载
# grep image components.yaml
image: k8s.gcr.io/metrics-server/metrics-server:v0.6.2
imagePullPolicy: IfNotPresent
# #该k8s.gcr.io/metrics-server/metrics-server:v0.6.2镜像由于不可描述的原因下载起来有点麻烦。在https://hub.docker.com/中去下载。
# nerdctl pull k8simage/metrics-server:v0.6.2
# nerdctl tag k8simage/metrics-server:v0.6.2 k8s.gcr.io/metrics-server/metrics-server:v0.6.2
# #把metrics-server镜像打包并复制到所有节点上去。
# nerdctl save -o metrics-server.tar.gz k8s.gcr.io/metrics-server/metrics-server:v0.6.2
# scp metrics-server.tar.gz root@x.x.x.x:/root/
# #在其他节点上读取加载metrics-server镜像包。
# nerdctl load -i metrics-server.tar.gz
# #确认镜像包导入正常。
# nerdctl images
修改metrics-server.yaml文件
在下载metrics-server的配置文件中修改添加蓝色字体内容。
# sed -i -e 's/kubelet-preferred-address-types.*/kubelet-preferred-address-types=InternalIP/g' -e 's/metric-resolution.*/metric-resolution=30s/g' -e '/metric-resolution/a\ - --kubelet-insecure-tls' components.yaml
创建metrics-server pod
执行命令创建pod,并确认metrics-server pod运行正常,可以正常获取到k8s资源性能数据。
# kubectl apply -f components.yaml
# kubectl get pods -A
# kubectl top nodes