受限环境下如何修改Kubelet默认端口10250?
针对kubeadm部署的Kubernetes集群,你可以通过以下两种场景修改Kubelet的默认端口:
一、集群初始化前配置(推荐用于新集群)
创建kubeadm配置文件(例如kubeadm-config.yaml),在nodeRegistration字段中指定Kubelet的自定义端口:
apiVersion: kubeadm.k8s.io/v1beta3 kind: InitConfiguration nodeRegistration: kubeletExtraArgs: port: "30000" # 替换为你的允许端口 --- apiVersion: kubeadm.k8s.io/v1beta3 kind: ClusterConfiguration # 保留你之前配置API Server端口的内容
执行初始化命令:
kubeadm init --config=kubeadm-config.yaml
新节点加入时,同样需要指定该端口:
kubeadm join <控制平面地址> --token <令牌> --discovery-token-ca-cert-hash <哈希值> --kubelet-extra-args="--port=30000"
二、已运行集群的修改步骤
修改每个节点的Kubelet配置
编辑Kubelet的配置文件(通常路径为/var/lib/kubelet/config.yaml),找到port字段并修改为目标端口:port: 30000 # 替换为你的允许端口若该文件中无
port字段,直接添加上述内容。更新Kubelet的systemd服务配置
编辑/etc/systemd/system/kubelet.service.d/10-kubeadm.conf,在KUBELET_EXTRA_ARGS中添加或修改端口参数:Environment="KUBELET_EXTRA_ARGS=--port=30000"重启Kubelet服务
systemctl daemon-reload systemctl restart kubelet更新API Server配置
编辑控制平面节点上的API Server静态Pod配置文件/etc/kubernetes/manifests/kube-apiserver.yaml,在command数组中添加--kubelet-port=30000参数,确保API Server能与新端口的Kubelet通信:spec: containers: - command: - kube-apiserver - --kubelet-port=30000 # 添加这一行 # 其他原有参数...保存后,API Server会自动重启生效。
验证配置
在控制平面节点执行以下命令,确认API Server能正常访问Kubelet:kubectl get nodes -o wide若节点状态为
Ready,说明端口修改成功。
注意:确保你的受限环境安全组/防火墙已开放新的Kubelet端口,允许控制平面节点与工作节点之间的通信。
内容的提问来源于stack exchange,提问作者kaushal47

