Kubernetes 功能豐富而強大,學習研究期間有些概念,個人感覺還是有點繞,爲了方便理解簡單進行梳理,相關核心概念整理如下:
K8s控制器Deployment與DaemonSet區別
不同點
Deployment 部署的副本 Pod 會分佈在各個 Node 上,每個 Node 都可能運行好幾個副本。
DaemonSet 的不同之處在於,每個 Node 上最多隻能運行一個副本。
kubernetes 中三種IP
包括
1. NodeIP node節點的IP地址
2. Pod IP pod的IP地址
3. Cluster IP service的IP地址
Node IP:是kubernetes集羣中每個節點的物理網卡的IP地址,client訪問kubernetes集羣使用的IP地址
Pod IP:是更具創建的網絡類型,網橋分配的IP地址,
Cluster IP:是一個虛擬的IP, cluster ip 僅作用於kubernetes service 這個對象,是由kubernetes管理和分配ip地址,源於cluster ip地址池
注意
Cluster IP 無法ping通, 因爲沒有一個實體網絡對象響應,另外,因爲Service其實是iptables或ipvs的轉發規則,這規則不支持ICMP協議,所以ping不通。
Cluster IP 只能結合 service port 組成一個具體的通信接口,單獨的cluster IP不具備tcp/ip通信基礎,如果pod對外訪問,需要在servcie中指定type 爲 NodePort。
更改NodePort限制
Kubernetes默認對外的NodePort限制範圍爲30000-32767, 這裏如果要使用一些常用的端口(80, 8080, 443)需將這個範圍放大。
# vi /etc/kubernetes/manifests/kube-apiserver.yaml
在--service-cluster-ip-range與insecure-port間添加如下node port配置
- --service-cluster-ip-range=10.96.0.0/12
- --service-node-port-range=0-32767
- --insecure-port=0
重啓服務
# systemctl restart kubelet
Pod、ReplicaSet、Deployment、Service之間的關係
Pod被ReplicaSet管理,ReplicaSet控制pod的數量;ReplicaSet被Deployment管理,Deployment控制pod應用的升級、回滾,當然也能控制pod的數量。Service提供一個統一固定入口,負責將前端請求轉發給Pod。