在arm上部署k8s的一些坑

  1. kubelet、kubeadm要配置amr的地址,另外他们的名字和x86上面有一点不一样,他们是kubelet-1.21.2-0,多了一个-0的小尾巴

  2. kubeadm init的时候加上仓库的地址,如--image-repository registry.aliyuncs.com/google_containers

  3. coredns的问题是他的镜像地址转换后变成 : registry.aliyuncs.com/google_containers/coredns/coredns:v1.8.0 这样就找不到,所以需要手工去拉,再打tag

docker pull coredns/coredns:1.8.0  

特别注意,tag后的版本是 v1.8.0 ,要多一个v
docker tag coredns/coredns:1.8.0 registry.aliyuncs.com/google_containers/coredns:v1.8.0
  1. init命令加上--ignore-preflight-errors=all
kubeadm init --kubernetes-version=v{KUBERNETES_VERSION} \
--pod-network-cidr={POD_NETWORK_CIDR} \
--apiserver-advertise-address=${APISERVER_ADVERTISE_ADDRESS} \
--image-repository registry.aliyuncs.com/google_containers \ 
--ignore-preflight-errors=all

最后加上--ignore-preflight-errors=all ,不然第3的问题还是会出现。

  1. 配置config文件环境

  2. 安装网络插件 kubectl apply -f https://docs.projectcalico.org/v3.19/manifests/calico.yaml
    最新的已经是operator的方式了。

7.测试

kubectl taint nodes --all node-role.kubernetes.io/master-
kubectl expose deployment nginx-deployment --type=NodePort
  1. 添加节点
source <(kubeadm completion bash)
kubeadm token create --print-join-command

9.扩容测试

kubectl scale deployment nginx-deployment  --replicas=3

然后去看有没有被调度到node节点

最后来一张成果图:
![图片上传中…]

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注