Kubernetes Services && Update

2018年8月16日16:37:23 發(fā)表評論 4,071 ℃

運行三個httpd鏡像

Kubernetes Services && Update

創(chuàng)建service

Kubernetes Services && Update

① v1 是 Service 的 apiVersion。

② 指明當前資源的類型為 Service。

③ Service 的名字為 httpd-svc。

④ selector 指明挑選那些 label 為 run: httpd 的 Pod 作為 Service 的后端。

⑤ 將 Service 的 8080 端口映射到 Pod 的 80 端口,使用 TCP 協議。

  kubectl describe service httpd-svc  #查看httpd-svc與Pod的對應關系

iptables 將訪問 Service 的流量轉發(fā)到后端 Pod,而且使用類似輪詢的負載均衡策略。

在kube-public中部署service httpds-svc

Kubernetes Services && Update

通過namespace: kube-public指定資源所屬的namespace。多個資源可以在一個YAML文件中定義,用 --- 分割。

外網訪問Service

ClusterIP 

Service 通過 Cluster 內部的 IP 對外提供服務,只有 Cluster 內的節(jié)點和 Pod 可訪問,這是默認的 Service 類型,前面實驗中的 Service 都是 ClusterIP。

NodePort 

Service 通過 Cluster 節(jié)點的靜態(tài)端口對外提供服務。Cluster 外部可以通過 <NodeIP>:<NodePort> 訪問 Service。

LoadBalancer 

Service 利用 cloud provider 特有的 load balancer 對外提供服務,cloud provider 負責將 load balancer 的流量導向 Service。目前支持的 cloud provider 有 GCP、AWS、Azur 等。

使用Nodeport方式

Kubernetes Services && Update

Kubernetes Services && Update

PORT(S) 為 8080:30651。8080 是 ClusterIP 監(jiān)聽的端口,30651則是節(jié)點上監(jiān)聽的端口。Kubernetes 會從 30000-32767 中分配一個可用的端口,每個節(jié)點都會監(jiān)聽此端口并將請求轉發(fā)給 Service。

nodePort指定分配的端口

Kubernetes Services && Update

nodePort 是節(jié)點上監(jiān)聽的端口。

port 是 ClusterIP 上監(jiān)聽的端口。

targetPort 是 Pod 監(jiān)聽的端口。

版本回滾

默認配置下,Kubernetes 只會保留最近的幾個 revision,可以在 Deployment 配置文件中通過 revisionHistoryLimit 屬性增加 revision 數量。

Kubernetes Services && Update

 kubectl apply -f httpd.v1.yml --record

--record 的作用是將當前命令記錄到 revision 記錄中,這樣我們就可以知道每個 revison 對應的是哪個配置文件。

kubectl rollout history deployment httpd 查看revision歷史記錄

Kubernetes Services && Update

kubectl rollout undo deployment httpd --to-revision=1 #回滾到版本1

【騰訊云】云服務器、云數據庫、COS、CDN、短信等云產品特惠熱賣中

發(fā)表評論

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: