返回

Kubernetes 工匠精神:打造您的 node 节点王国

见解分享

在 Kubernetes 集群中部署 Node 节点并配置 CNI 网络插件:全面的指南

简介

Kubernetes 集群由称为 node 节点的服务器组成,负责运行应用程序和服务。为了在 node 节点之间建立网络连接,需要部署容器网络接口(CNI)网络插件。本指南将指导您逐步部署 node 节点,并使用 Calico CNI 网络插件配置网络连接。

准备工作

步骤 1:先决条件

  • 已部署 etcd 分布式数据库和 master01 节点。
  • 已准备足够数量的机器作为 node 节点,满足资源要求。
  • 在每台 node 节点上安装 Docker。
  • 在每台 node 节点上安装 CNI 网络插件。

部署 Node 节点

步骤 2:创建 Node 节点

在 master01 节点上执行以下命令:

kubectl create node --pod-cidr=192.168.0.0/16 node01

为每个 node 节点重复此步骤,指定唯一的 pod-cidr 范围。

步骤 3:验证 Node 节点状态

运行以下命令查看 node 节点状态:

kubectl get nodes

确保所有 node 节点处于 Ready 状态。

配置 CNI 网络插件

步骤 4:安装 Calico CNI 网络插件

在 master01 节点上执行以下命令:

kubectl apply -f https://docs.projectcalico.org/v3.17/getting-started/kubernetes/installation/hosted/kubeadm/1.22/calico.yaml

步骤 5:验证 CNI 网络插件

运行以下命令测试 Calico Pod:

kubectl exec -ti pod/calico-node-vxlan-6pjwb -- nslookup kubernetes.default.svc.cluster.local

确保返回的 IP 地址与 pod-cidr 范围一致。

应用负载

步骤 6:部署 Nginx Pod

在 master01 节点上执行以下命令:

kubectl apply -f https://k8s.io/examples/pods/nginx.yaml

步骤 7:验证负载

获取 nginx Pod 的 IP 地址:

kubectl get pods -l app=nginx -o jsonpath='{.items[0].status.podIP}'

在浏览器中访问该 IP 地址,查看 nginx 欢迎页面。

结论

您已成功在 Kubernetes 集群中部署 node 节点并配置 Calico CNI 网络插件。现在,您的集群已准备好运行和管理应用程序和服务。

常见问题解答

问:如何扩展 node 节点?

答: 运行以下命令添加 node 节点:

kubectl create node --pod-cidr=192.168.0.0/16 node02

问:如何更改 pod-cidr 范围?

答: 删除现有 node 节点,然后使用新的 pod-cidr 范围创建它们。

问:如何安装其他 CNI 网络插件?

答: 在 master01 节点上执行以下命令:

kubectl apply -f https://docs.cilium.io/en/v1.13/install/kubernetes/quick-installation/

问:如何排查网络问题?

答: 检查 calico-node Pod 的日志、验证 Calico Pod 是否正在运行,并确保防火墙配置正确。

问:如何优化网络性能?

答: 考虑使用 BGP 路由或调整 CNI 网络插件的配置参数。