-
环境准备:
- 所有节点配置静态IP,禁用swap,确保主机名唯一
- 配置/etc/hosts域名解析,同步系统时间
- 开放6443、2379-2380、10250-10255等必要端口
-
安装容器运行时:
apt-get install -y containerd systemctl enable --now containerd
-
安装kubeadm/kubelet/kubectl:
apt-get install -y apt-transport-https ca-certificates curl curl -fsSL https://pkgs.k8s.io/core:/stable:/v1.28/deb/Release.key | gpg --dearmor -o /etc/apt/keyrings/kubernetes-apt-keyring.gpg echo 'deb [signed-by=/etc/apt/keyrings/kubernetes-apt-keyring.gpg] https://pkgs.k8s.io/core:/stable:/v1.28/deb/ /' > /etc/apt/sources.list.d/kubernetes.list apt-get update && apt-get install -y kubelet kubeadm kubectl
-
初始化Master节点:
kubeadm init --apiserver-advertise-address=MASTER_IP --pod-network-cidr=10.244.0.0/16 mkdir -p $HOME/.kube cp /etc/kubernetes/admin.conf $HOME/.kube/config
-
加入Worker节点: 在Worker节点执行kubeadm init输出的join命令,格式如:
kubeadm join MASTER_IP:6443 --token xxx --discovery-token-ca-cert-hash sha256:xxx
-
安装网络插件:
kubectl apply -f https://raw.githubusercontent.com/flannel-io/flannel/v0.22.0/Documentation/kube-flannel.yml
-
验证集群状态:
kubectl get nodes -o wide kubectl get pods -n kube-system
Kubernetes(k8s)集群如何进行多节点安装?
回答
| 共 3 个
Kubernetes多节点安装的核心步骤包括环境准备、组件部署及集群配置。建议按以下流程实施:
-
节点规划
- 至少1个Master节点(推荐3节点实现HA)
- 多个Worker节点(按业务需求扩展)
- 所有节点需满足: • 2GB+内存/2核CPU+ • 禁用swap • 唯一主机名与静态IP • 时间同步(NTP)
-
容器运行时安装
- 所有节点安装Docker(20.10+)或containerd
apt-get install docker.io && systemctl enable docker
- 所有节点安装Docker(20.10+)或containerd
-
Kubernetes组件安装
- 所有节点安装kubeadm/kubelet/kubectl
apt-get install -y kubeadm=1.28.0-00 kubelet=1.28.0-00 kubectl=1.28.0-00 systemctl enable kubelet
- 所有节点安装kubeadm/kubelet/kubectl
-
Master节点初始化
kubeadm init --apiserver-advertise-address=MASTER_IP \ --pod-network-cidr=10.244.0.0/16
- 记录生成的join命令
- 配置kubectl环境
mkdir -p $HOME/.kube cp /etc/kubernetes/admin.conf $HOME/.kube/config
-
网络插件部署
- 推荐Calico/Flannel
kubectl apply -f https://docs.projectcalico.org/manifests/calico.yaml
- 推荐Calico/Flannel
-
Worker节点加入
- 执行初始化时生成的kubeadm join命令
kubeadm join MASTER_IP:6443 --token xxxx --discovery-token-ca-cert-hash sha256:xxxx
- 执行初始化时生成的kubeadm join命令
-
集群验证
kubectl get nodes -o wide kubectl get pods -A
关键注意事项:
- 确保所有节点间网络互通(API Server端口6443等)
- 不同Kubernetes版本需对应匹配组件版本
- 生产环境建议通过RKE/kubeadm HA方案部署多Master
-
环境准备(所有节点)
- 禁用Swap:
swapoff -a
并注释/etc/fstab中的swap条目 - 配置主机名解析:确保/etc/hosts包含所有节点IP与主机名映射
- 加载内核模块:
modprobe overlay br_netfilter
,并配置sysctl参数 - 安装容器运行时(如containerd):通过包管理器安装并配置cgroup驱动为systemd
- 安装kubeadm/kubelet/kubectl:添加K8s仓库,安装指定版本并设置开机启动
- 禁用Swap:
-
初始化Master节点
- 执行
kubeadm init --pod-network-cidr=192.168.0.0/16 --apiserver-advertise-address=<MASTER_IP>
- 配置kubectl:
mkdir -p $HOME/.kube
并复制admin.conf到~/.kube/config - 记录加入命令:保存输出的
kubeadm join
命令(含token和证书哈希)
- 执行
-
部署网络插件
- 安装Calico:
kubectl apply -f https://raw.githubusercontent.com/projectcalico/calico/v3.26.1/manifests/calico.yaml
- 安装Calico:
-
添加Worker节点
- 在Worker节点执行保存的
kubeadm join
命令 - 验证节点状态:在Master执行
kubectl get nodes
,等待所有节点状态变为Ready
- 在Worker节点执行保存的
-
验证集群功能
- 部署测试应用:
kubectl create deployment nginx --image=nginx
- 检查Pod调度:确认Pod可跨节点正常运行
- 部署测试应用:
推荐
热门问答
部分内容依据人工智能生成,仅供参考,可能有误请注意甄别