kubeadm 安装 Kubernetes 1.6.2 过程中的一些坑

2023年 7月 9日 60.6k 0

因为一些莫可名状的原因,国内网络使用 Kubeadm 颇有难度,这里大概说一下过程中的一些坑。

主体流程遵循官网指南:https://kubernetes.io/docs/getting-started-guides/kubeadm/

1/4 准备工作

这里用包管理的方式安装 kubeadm、Docker 等组件。需要注意一点点的是,如果用的非 Root 用户,要注意 sudo 的时候的环境代理设置问题。或者干脆在 apt/yum 的配置文件中写入代理服务器。

另外这里安装 Docker 之后,注意给 Docker 配置代理。或者可以直接想法子搞到下面列表中的镜像,并导入 Docker 之中:

镜像准备

下面提到的镜像基于目前的 1.6.2 版本,每次更新都会有不同。

Image Ver Component
gcr.io/google_containers/kube-proxy-amd64 v1.6.2 Kubernetes
gcr.io/google_containers/kube-controller-manager-amd64 v1.6.2 Kubernetes
gcr.io/google_containers/kube-apiserver-amd64 v1.6.2 Kubernetes
gcr.io/google_containers/kube-scheduler-amd64 v1.6.2 Kubernetes
gcr.io/google_containers/etcd-amd64 3.0.17 Kubernetes
gcr.io/google_containers/pause-amd64 3.0 Kubernetes
gcr.io/google_containers/k8s-dns-sidecar-amd64 1.14.1 DNS
gcr.io/google_containers/k8s-dns-kube-dns-amd64 1.14.1 DNS
gcr.io/google_containers/k8s-dns-dnsmasq-nanny-amd64 1.14.1 DNS
gcr.io/google_containers/etcd 2.2.1 Calico
quay.io/calico/node v1.1.3 Calico
quay.io/calico/cni v1.8.0 Calico
quay.io/calico/kube-policy-controller v0.5.4 Calico

2/4 Master 初始化

kubeadm init

这里的几个问题:

  • 如果准备采用 flannel 插件,需要 -pod-network-cidr 10.244.0.0/16 参数
  • Ubuntu 下可能会出现无限等待 Node 加入的情况,可能的原因是 /etc/resolv.conf 中有关于 localhost 的 search 记录,删掉这行就能解决。
  • 如果准备采用 Calico 插件,那么要注意 Calico 的 YAML 中的 ip pool 跟集群设置一致。
  • 如果不是预先准备好的备份,过程会比较长,耐心。。

Init 成功之后会出一堆文本信息,其中包含几点内容,最好保存下来:

  • 自动生成的 kubectl config 文件,可以复制到 ~/.kube/config 中作为缺省 kubectl 使用。
  • 把新节点加入集群的方法。

另外这里还有个提示——没有安装 Pod Network。

3/4 安装 Pod Network

这一步很重要,所有的应用包括 Kube DNS 在内,都依赖于此。

如上文所示,准备使用的是 Calico,这里值得注意的一坑是,不同版本的 Kubernetes 会有不同的 Calico 安装,1.6 版本应该使用的是:kubectl apply -f http://docs.projectcalico.org/v2.1/getting-started/kubernetes/installation/hosted/kubeadm/1.6/calico.yaml

http://docs.projectcalico.org/v2.1/getting-started/kubernetes/installation/hosted/kubeadm/ 还有一些其他的安装方式可以参考。

Calico 的注意事项

  • 他的 ETCD 服务器要求装在 Master 所在的 Node 上,使用的是 nodeSelector 的方式,选择标签:node-role.kubernetes.io/master: ""
  • 上文提到的 pod network cidr 和 ip pool 的一致性问题
  • --service-cidr 和 IP Pool 不能重叠

4/4 加入节点

在其他 Node 上做好准备工作之后,用kubeadm init命令中提到的kubeadmin join方法加入集群。

相关文章

KubeSphere 部署向量数据库 Milvus 实战指南
探索 Kubernetes 持久化存储之 Longhorn 初窥门径
征服 Docker 镜像访问限制!KubeSphere v3.4.1 成功部署全攻略
那些年在 Terraform 上吃到的糖和踩过的坑
无需 Kubernetes 测试 Kubernetes 网络实现
Kubernetes v1.31 中的移除和主要变更

发布评论