Worker 节点加入集群
在 Master 节点初始化完成后,会输出一条 join 命令。在所有 Worker 节点上执行:
kubeadm join 192.168.4.205:6443 --token abcdef.0123456789abcdef \
--discovery-token-ca-cert-hash sha256:1752fed7bd75a007493c68d377fec8150d6ea3ccc73b552fdffd529c6008e82c
bash
如果忘记了 join 命令,可以在 Master 节点重新生成:
kubeadm token create --print-join-command
bash
验证节点加入
# 查看所有节点(此时节点状态为 NotReady,因为还没安装网络插件)
kubectl get nodes
bash
网络插件选择
| 插件 | 性能 | 网络策略 | 适用场景 |
|---|---|---|---|
| Calico | 高(BGP 模式) | 丰富 | 大规模生产环境 |
| Cilium | 高(eBPF) | 高级安全 | 大规模集群,关注安全性 |
| Flannel | 中 | 不支持 | 小型集群/开发测试 |
| Weave Net | 中 | 支持 | 快速部署 |
安装 Calico
安装 Tigera Operator
kubectl create -f https://raw.githubusercontent.com/projectcalico/calico/v3.28.0/manifests/tigera-operator.yaml
# 查看安装状态
kubectl get ns
kubectl get pods -n tigera-operator
bash
配置 Calico
下载并修改配置文件:
# calico.yml
apiVersion: operator.tigera.io/v1
kind: Installation
metadata:
name: default
spec:
calicoNetwork:
ipPools:
- name: default-ipv4-ippool
blockSize: 26
cidr: 10.244.0.0/16 # 需与 kubeadm 配置的 podSubnet 一致
encapsulation: VXLANCrossSubnet
natOutgoing: Enabled
nodeSelector: all()
---
apiVersion: operator.tigera.io/v1
kind: APIServer
metadata:
name: default
spec: {}
yaml
应用配置:
kubectl apply -f calico.yml
bash
验证
# 查看 Calico 安装进度
watch -n 2 kubectl get pods -n calico-system
# 查看节点状态(应变为 Ready)
kubectl get nodes
# 查看 kube-system 中的 Pod
kubectl get pods -n kube-system
# 完整信息
kubectl get pods -n kube-system -o wide
bash
故障排查
如果节点状态持续为 NotReady:
# 查看 kubelet 日志
journalctl -u kubelet -f
# 查看 Calico Pod 状态
kubectl get pods -n calico-system -o wide
# 查看具体 Pod 日志
kubectl logs -n calico-system <calico-pod-name>
bash
↑