Kubernetes 修改默认的端口范围
Kubernetes 服务的 NodePort 默认端口范围是 30000-32767,在某些业务场景下,这个限制不太适用,我们可以自定义端口范围,操作步骤如下:
vi /etc/kubernetes/manifests/kube-apiserver.yaml 配置文件,增加配置 --service-node-port-range=2-65535
apiVersion: v1
kind: Pod
metadata:
creationTimestamp: null
labels:
component: kube-apiserver
tier: control-plane
name: kube-apiserver
namespace: kube-system
spec:
containers:
- command:
- kube-apiserver
在这里增加配置即可
- –service-node-port-range=2-65535
- –advertise-address=172.16.17.203
- –allow-privileged=true
- –authorization-mode=Node,RBAC
- –client-ca-file=/etc/kubernetes/pki/ca.crt
- –enable-admission-plugins=NodeRestriction
- –enable-bootstrap-token-auth=true
- –etcd-cafile=/etc/kubernetes/pki/etcd/ca.crt
- –etcd-certfile=/etc/kubernetes/pki/apiserver-etcd-client.crt
// 以下省略…
使用 docker ps 命令找到 kube-apiserver 对应的容器,再 docker restart 即可生效。
改了 NodePort 端口范围后,Kubernetes APIServer 会自动感知到这个变化,并在下一次服务部署时开始使用新的范围。
请注意,对于已经创建的 Service,修改 NodePort 端口范围后,并不会自动将现有的 Service 的端口迁移到新范围内。
这意味着如果您修改了NodePort端口范围,并且已经创建了使用旧范围端口的 Service,那么这些 Service 仍然会使用旧的端口。
因此,对于已经创建的 Service,如果您希望将其端口迁移到新的范围内,您需要手动更新这些 Service 的配置,并重新部署它们,以使它们使用新的 NodePort 端口范围。
总结起来,修改 NodePort 端口范围后,Kubernetes APIServer 会自动适应新的范围,但对于已经创建的 Service,您需要手动更新它们的配置并重新部署,不需要重启 APIServer。