💎一站式轻松地调用各大LLM模型接口,支持GPT4、智谱、豆包、星火、月之暗面及文生图、文生视频 广告
[TOC] ### **端口列表** Kubernetes-v1.17.3的组件端口如下 | 组件 | 端口 | 参数 | 默认值 | 协议 | 必须开启 | 说明 | | --- | --- | --- | --- | --- | --- | --- | | kube-apiserver | 安全端口 | --secure-port | 6443 | HTTPS | 是 | - | | kube-apiserver | 非安全端口 | --insecure-port | 8080 | HTTP | 否,0表示关闭 | deprecated | | kubelet | 健康检测端口 | --healthz-port | 10248 | HTTP | 否,0表示关闭 | - | | kube-proxy | 指标端口 | --metrics-port | 10249 | HTTP | 否,0表示关闭 | - | | kubelet | 安全端口 | --port | 10250 | HTTPS | 是 | 认证与授权 | | kube-scheduler | 非安全端口 | --insecure-port | 10251 | HTTP | 否,0表示关闭 | deprecated | | kube-controller-manager | 非安全端口 | --insecure-port | 10252 | HTTP | 否,0表示关闭 | deprecated | | kubelet | 非安全端口 | --read-only-port | 10255 | HTTP | 否,0表示关闭 | - | | kube-proxy | 健康检测端口 | --healthz-port | 10256 | HTTP | 否,0表示关闭 | - | | kube-controller-manager | 安全端口 | --secure-port | 10257 | HTTPS | 否,0表示关闭 | 认证与授权 | | kube-scheduler | 安全端口 | --secure-port | 10259 | HTTPS | 否,0表示关闭 | 认证与授权 | ### **配置建议** 除了四个安全端口以外,其他端口都建议关闭。另外,kube-apiserver、kube-controller-manager、kube-scheduler的非安全端口这个参数在未来的版本中会被废弃掉。 ### **10257与10259端口** 这两个端口是controller-manager与scheduler的安全端口。kubeadm安装的集群,kube-controller-manager与kube-scheduler的安全端口对应的监听地址为127.0.0.1,开启这个端口的作用主要是用来检查它们健康状态。比如说,我们执行以下命令来查看k8s组件的状态: ``` $ kubectl get cs NAME STATUS MESSAGE ERROR scheduler Healthy ok controller-manager Healthy ok etcd-0 Healthy {"health":"true"} ``` kube-apiserver其实是通过 `https://127.0.0.1:10257/healthz` 和 `https://127.0.0.1:10259/healthz` 来判断controller-manager和scheduler的状态。 有时候我们安装了一个N个Master的集群,通过`kubectl get cs`命令可以看到多个etcd的健康状态,但是却还是只能看到一个scheduler和controller-manager,如下: ``` $ kubectl get cs NAME STATUS MESSAGE ERROR scheduler Healthy ok controller-manager Healthy ok etcd-0 Healthy {"health":"true"} etcd-1 Healthy {"health":"true"} etcd-2 Healthy {"health":"true"} ``` 这是因为,kube-apiserver只会检查本节点上的10257和10259端口,不会检查其他Master节点的这两个端口。这也是为什么这两个端口只监听`127.0.0.1`的原因。