Kubernetes學習 Service + Rolling Update(三)
四、外網如何訪問Service
除了 Cluster 內部可以訪問 Service,很多情況下我們也希望應用的 Service 能夠暴露給 Cluster 外部。Kubernetes 提供多種類型的 Service,默認是 Cluster IP。
(1)Cluster IP
Service 通過 Cluster 內部的 IP 對外提供服務,只有 Cluster 內部的節點和 Pod 可訪問,這是默認的 Service 類型,前面實驗中的 Service 都是 CLuster IP。
(2)NodePort
Service 通過 Cluster 節點的靜態端口對外提供服務。Cluster
(3)LoadBalancer
Service 利用 cloud provider 特有的 load balancer 對外提供服務,cloud provider 負責將 cload balancer 的流量導向 Service。目前支持的 cloud provider 有 GCP、AWS、Azur等。
五、回滾
kubectl apply 每次更新應用時, Kubernetes 都會記錄下當前的位置,保存為一個 revision。
默認配置下,Kubernetes
實踐回滾功能:
應用有三個文件,即httpd.v1.yaml、httpd.v2.yaml、httpd.yaml 分別對應著 httpd 的三個版本 2.4.16、2.4.17、2.4.18。
kubectl apply -f httpd.v1.yaml --record
--record 的作用是將當前命令記錄到 revision 記錄中,這樣我們就能知道每個revision 對應是哪個配置文件了。
通過 kubectl rollout history deployment httpd ,查看 revision。
CHANGE-CAUSE 就是 --record 的結果。如果要回滾到某個版本,譬如 revision3,
執行命令 kubectl rollout undo deployment httpd --to-revision=3
Kubernetes學習 Service + Rolling Update(三)