API Server 6443端口、8080端口、443端口的区别


8080 端口与 6443 端口

Kubernets API Server进程提供Kubernetes API。通常情况下,有一个进程运行在单一kubernetes-master节点上。

默认情况,Kubernetes API Server提供HTTP的两个端口:

1.Insecure Port

  • HTTP服务
  • 默认端口8080,修改标识 --insecure-port,此值默认为0,表示此端口默认是关闭的。如果需要开启 HTTP 非安全端口模式,可以把 --insecure-port 值设置为8080
  • 默认IP是本地主机,修改标识 --insecure-bind-address
  • 在HTTP中没有认证和授权检查
  • 主机访问受保护

2.Secure Port

  • 默认端口6443,修改标识—secure-port
  • 默认IP是首个非本地主机的网络接口,修改标识 --bind-address
  • HTTPS服务。设置证书和秘钥的标识,--tls-cert-file,--tls-private-key-file
  • 认证方式,令牌文件或者客户端证书
  • 使用基于策略的授权方式

443 端口

那 443 端口又是什么呢?

443 端口是 default 命名空间下的一个名为 kubernetes 的service 的端口,

$ kubectl get svc
NAME                    TYPE        CLUSTER-IP     EXTERNAL-IP   PORT(S)   AGE
kubernetes              ClusterIP   10.96.0.1              443/TCP   32h

使用 describe 命令查看详细信息,可以发现这个 kubernetes service 其实就是 API Server 的入口地址,其后端的 endpoint 依然指向的是 API Server 的 Pod IP (也就是 API Server 监听的地址) 的 6443 端口。

$ kubectl describe svc kubernetes 
Name:              kubernetes
Namespace:         default
Labels:            component=apiserver
                   provider=kubernetes
Annotations:       
Selector:          
Type:              ClusterIP
IP Families:       
IP:                10.96.0.1
IPs:               
Port:              https  443/TCP
TargetPort:        6443/TCP
Endpoints:         172.18.0.3:6443
Session Affinity:  None
Events:            

参考文章

API Server端口配置_Kubernetes中文社区

Kubernetes如何开启8080非安全端口_RivenDong-CSDN博客