k8s 1.21版本 端口和地址参数
# etcd
# containerd
# apiserver
## address
--advertise-address string
向集群成员通知 apiserver 消息的 IP 地址。 这个地址必须能够被集群中其他成员访问。 如果 IP 地址为空,将会使用 --bind-address, 如果未指定 --bind-address,将会使用主机的默认接口地址。
--bind-address string 默认值:"0.0.0.0"
用来监听 --secure-port 端口的 IP 地址。 集群的其余部分以及 CLI/web 客户端必须可以访问所关联的接口。 如果为空白或未指定地址(0.0.0.0 或 ::),则将使用所有接口。
## port
--secure-port int 默认值:6443
带身份验证和鉴权机制的 HTTPS 服务端口。 不能用 0 关闭。
# controller
## address
--bind-address ip 默认值:0.0.0.0
针对 --secure-port 端口上请求执行监听操作的 IP 地址。 所对应的网络接口必须从集群中其它位置可访问(含命令行及 Web 客户端)。 如果此值为空或者设定为非特定地址(0.0.0.0 或 ::), 意味着所有网络接口都在监听范围。
## port
--secure-port int 默认值:10257
在此端口上提供 HTTPS 身份认证和鉴权操作。若此标志值为 0,则不提供 HTTPS 服务。
# scheduler
## address
--address string 默认值:"0.0.0.0"
已弃用: 要监听 --port 端口的 IP 地址(将其设置为 0.0.0.0 或者 :: 用于监听所有接口和 IP族)。 请参阅 --bind-address。 如果在 --config 中指定了一个配置文件,这个参数将被忽略。
--bind-address string 默认值:0.0.0.0
监听 --secure-port 端口的 IP 地址。 集群的其余部分以及 CLI/ Web 客户端必须可以访问关联的接口。 如果为空,将使用所有接口(0.0.0.0 表示使用所有 IPv4 接口,"::" 表示使用所有 IPv6 接口)。 如果为空或未指定地址 (0.0.0.0 或 ::),所有接口将被使用。
## port
--port int 默认值:10251
已弃用: 在没有身份验证和鉴权的情况下不安全地为 HTTP 服务的端口。 如果为 0,则根本不提供 HTTP。请参见 --secure-port。 如果 --config 指定了一个配置文件,这个参数将被忽略。
--secure-port int 默认值:10259
通过身份验证和授权为 HTTPS 服务的端口。如果为 0,则根本不提供 HTTPS。
# kubelet
## address
--address ip 默认值:0.0.0.0
kubelet 用来提供服务的 IP 地址(设置为0.0.0.0 表示使用所有 IPv4 接口, 设置为 :: 表示使用所有 IPv6 接口)。已弃用:应在 --config 所给的 配置文件中进行设置。
--healthz-bind-address ip 默认值:127.0.0.1
用于运行 healthz 服务器的 IP 地址(设置为 0.0.0.0 表示使用所有 IPv4 接口, 设置为 :: 表示使用所有 IPv6 接口。 已弃用:应在 --config 所给的配置文件中进行设置。
## port
--port int32 默认值:10250
kubelet 服务监听的本机端口号。 已弃用:应在 --config 所给的配置文件中进行设置。
--read-only-port int32 默认值:10255
kubelet 可以在没有身份验证/鉴权的情况下提供只读服务的端口(设置为 0 表示禁用)。 已弃用:应在 --config 所给的配置文件中进行设置。
--healthz-port int32 默认值:10248
本地 healthz 端点使用的端口(设置为 0 表示禁用)。 已弃用:应在 --config 所给的配置文件中进行设置。
# proxy
## address
--bind-address 0.0.0.0 默认值:0.0.0.0
代理服务器要使用的 IP 地址(设置为 '0.0.0.0' 表示要使用所有 IPv4 接口; 设置为 '::' 表示使用所有 IPv6 接口)。
--healthz-bind-address 0.0.0.0 默认值:0.0.0.0:10256
服务健康状态检查的 IP 地址和端口(设置为 '0.0.0.0:10256' 表示使用所有 IPv4 接口,设置为 '[::]:10256' 表示使用所有 IPv6 接口); 设置为空则禁用。
--metrics-bind-address ipport 默认值:127.0.0.1:10249
metrics 服务器要使用的 IP 地址和端口 (设置为 '0.0.0.0:10249' 则使用所有 IPv4 接口,设置为 '[::]:10249' 则使用所有 IPv6 接口) 设置为空则禁用。
--nodeport-addresses strings
一个字符串值,指定用于 NodePort 服务的地址。 值可以是有效的 IP 块(例如 1.2.3.0/24, 1.2.3.4/32)。 默认的空字符串切片([])表示使用所有本地地址。
--proxy-port-range port-range
可以用来代理服务流量的主机端口范围(包括'起始端口-结束端口'、 '单个端口'、'起始端口+偏移'几种形式)。 如果未指定或者设置为 0(或 0-0),则随机选择端口。
域名访问
TOKEN=$(kubectl get secret $(kubectl get serviceaccount default -o jsonpath='{.secrets[0].name}') -o jsonpath='{.data.token}' | base64 --decode)
kubectl create clusterrolebinding system:serviceaccount:default:default --clusterrole=cluster-admin --user=system:serviceaccount:default:default
组件 | 端口 | 端口参数 ==> 端口暴露的地址对应的参数 | 端口暴露的地址 | TOKEN访问方式 | 说明 |
---|---|---|---|---|---|
etcd | 23799 | [root@master ~]# curl https://192.168.56.168:23799/metrics --header “Authorization: Bearer $TOKEN” --insecure curl: (58) NSS: client certificate not found (nickname not specified) | token采集不到,证书可以采集到 | ||
containerd | 1338 | 在[metrics]下面 address = “127.0.0.1:1338” | curl http://127.0.0.1:1338/v1/metrics | ||
apiserver | 16443 | –secure-port | 192.168.56.168 | curl https://192.168.56.168:16443/metrics --header “Authorization: Bearer $TOKEN” --insecure | |
controller | 11252 | –port => address | 127.0.0.1 | curl http://127.0.0.1:11252/metrics | |
11257 | –secure-port => bind-address | 192.168.56.168 | curl https://192.168.56.168:11257/metrics --header “Authorization: Bearer $TOKEN” --insecure | ||
scheduler | 11251 | –port => address | 127.0.0.1 | curl http://127.0.0.1:11251/metrics | |
11259 | –secure-port => bind-address | 192.168.56.168 | curl https://192.168.56.168:11259/metrics --header “Authorization: Bearer $TOKEN” --insecure | ||
kubelet | 11250 | port => address | 192.168.56.169 | curl https://192.168.56.169:11250/metrics | |
11255 | readOnlyPort => address | 192.168.56.169 | curl http://192.168.56.169:11255/metrics | Kubelet Summary (1) metrics: 127.0.0.1:10255/metrics,暴露 node、pod 汇总数据 (2) Cadvisor metrics: 127.0.0.1:10255/metrics/cadvisor,暴露 container 维度数据 | |
11248 | healthzPort | 等用到再说 | |||
proxy | 11256 | healthzBindAddress: 192.168.56.169:11256 | 等用到再说 | ||
11249 | metricsBindAddress: 127.0.0.1:11249 | 127.0.0.1 | curl http://127.0.0.1:11249/metrics |
证书访问
经测试,有些情况不加-k也可以成功访问
########## master节点 ##########
# etcd
curl -k https://域名或ip:23799/metrics --cacert ca.pem --key admin-key.pem --cert admin.pem
# apiserver
curl -k https://域名或ip:16443/metrics --cacert ca.pem --key admin-key.pem --cert admin.pem
# controller
curl http://127.0.0.1:11252/metrics
curl -k https://域名或ip:11257/metrics --cacert ca.pem --key admin-key.pem --cert admin.pem
# scheduler
curl http://127.0.0.1:11251/metrics
curl -k https://域名或ip:11259/metrics --cacert ca.pem --key admin-key.pem --cert admin.pem
########## node节点 ##########
# containerd
curl http://127.0.0.1:1338/v1/metrics
# kubelet
curl http://192.168.56.169:11255/metrics
curl -k https://域名或ip:11250/metrics --cacert ca.pem --key admin-key.pem --cert admin.pem
# proxy
curl http://127.0.0.1:11249/metrics