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      <none>        443/TCP   32h

使用 describe 命令查看詳細信息,可以發現這個 kubernetes service 其實就是 API Server 的入口地址,其后端的 endpoint 依然指向的是 API Server 的 Pod IP (也就是 API Server 監聽的地址) 的 6443 端口。主要用於在集群內即 pod 中訪問 apiserver。

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

關於這個名為 kubernetes 的 service,可以參考這篇:kube-apiserver 中 apiserver service 的實現 · 田飛雨 (tianfeiyu.com)

 

參考文章

API Server端口配置_Kubernetes中文社區

Kubernetes如何開啟8080非安全端口_RivenDong-CSDN博客


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM