文章目录
前置条件
已经完成 K8S安装过程九:Kubernetes Worker 节点安装 过程。
安装 CNI 查看与 CoreDNS 服务需要在 Kubernetes Master 节点上执行下面的操作命令。原因是部署 Calico 插件与 CoreDNS 服务用到了 kubectl 这个命令行工具,这个命令行工具依赖
~/.kube/config
这个配置文件,目前只在 kubernetes master 节点中生成了这个文件。
1. 安装CNI插件
1.1 下载 CNI 插件
mkdir -p /opt/kubernetes/cni
cd /opt/kubernetes/cni
wget https://docs.projectcalico.org/manifests/calico.yaml
1.2 修改 calico.yaml 配置信息
- 在 name:IP 配置后边追加如下内容
# Auto-detect the BGP IP address.
- name: IP
value: "autodetect"
# append IP_AUTODETECTION_METHOD env
- name: IP_AUTODETECTION_METHOD
value: "interface=eth0"
- 去掉下边变量前边的注释,并修改值
- name: CALICO_IPV4POOL_CIDR
value: "172.16.0.0/16"
CALICO_IPV4POOL_CIDR 的值必须与 K8S安装过程八:Kubernetes Master 节点安装 5.3 章节中 --cluster-cidr
值保持一致。
1.3 执行安装操作
kubectl apply -f calico.yaml
1.4 查看calico服务部署状态
kubectl get pods -A
上图中 calico-kube-controllers 服务有1个启动表示正常,calico-node 服务有3个,表示 kubernetes 集群有3个 kubernetes worker节点,每个 kubernetes worker 节点成功部署了calico-node 服务。提示:kubernetes 集群有多少个 kubernetes worker 节点,就会自动部署多少个 calico-node 服务。
2. 安装 CoreDNS 服务
2.1 获取 CoreDNS 安装文件
cd /opt
git clone https://github.com/coredns/deployment
2.2 部署 CoreDNS 服务
cd /opt/deployment/kubernetes
./deploy.sh -r 10.255.0.0/16 -i 10.255.0.2 > coredns.yaml
kubectl apply -f coredns.yaml
-r
:设置 kubernetes service IP 范围,这个值一定要与 K8S安装过程八:Kubernetes Master 节点安装 4.1章节中--service-cluster-ip-range
的值保持一致。-i
:设置 CoreDNS 的 IP 地址,这个值一定要与 K8S安装过程九:Kubernetes Worker 节点安装 2.1 章节中的clusterDNS
变量值保持一致。
2.3 查看部署成功后的CoreDNS 服务
kubectl get pods -A
coredns 服务状态为 runing 且 READY 为 1/1 表示服务正常启动。
3. 检查 kubernetes 集群 worker 节点
kubectl get nodes -A
上图中 k8s-master1 与 k9s-master2 节点上除了执行 K8S安装过程八:Kubernetes Master 节点安装 ,还执行了 K8S安装过程九:Kubernetes Worker 节点安装 ,所以,k8s-master1 与 k8s-master2 节点除了作为集群的主节点外,还兼职作为Kubernetes worker 节点使用。在测试环境中可以这样用,可以尽量的使用虚拟机资源。但是在生产环境中不建议这么使用,保持master的纯粹性,禁止 Pod 被调度到 master 节点,从而影响到集群的管理节点性能。