『中級篇』k8s重要的Deployment(64)
阿新 • • 發佈:2018-10-04
bind zhong 網絡 ner 都在 資源限制 ice swarm ont
>原創文章,歡迎轉載。轉載請註明:轉載自IT人故事會,謝謝!
>原文鏈接地址:『中級篇』k8s重要的Deployment(64)
之前介紹了,pod,ReplicationController,ReplicaSet。這次主要說下Deoloyments。源碼:https://github.com/limingios/docker/tree/master/No.9
官方介紹
https://kubernetes.io/docs/concepts/workloads/controllers/deployment/
Deployment為Pod和Replica Set提供聲明式更新。
你只需要在 Deployment 中描述您想要的目標狀態是什麽,Deployment controller 就會幫您將 Pod 和ReplicaSet 的實際狀態改變到您的目標狀態。您可以定義一個全新的 Deployment 來創建 ReplicaSet 或者刪除已有的 Deployment 並創建一個新的來替換。註意:您不該手動管理由 Deployment 創建的?Replica Set,否則您就篡越了 Deployment controller 的職責!下文羅列了 Deployment 對象中已經覆蓋了所有的用例。如果未有覆蓋您所有需要的用例,請直接在 Kubernetes 的代碼庫中提 issue。
Delpyment演示
- 啟動minikube
minikube start
deployment_nginx.yml
apiVersion: apps/v1 kind: Deployment metadata: name: nginx-deployment labels: app: nginx spec: replicas: 3 selector: matchLabels: app: nginx template: metadata: labels: app: nginx spec: containers: - name: nginx image: nginx:1.12.2 ports: - containerPort: 80
- 創建deployment
kubectl create -f deployment_nginx.yml kubectl get deployment kubectl get rs kubectl get pods
- deployment信息
可以看到這個deloyment下的詳情,nginx是1.12.2
kubectl get deployment -o wide
- deployment的升級
針對目前的nginx1.12升級成1.13的命令,老的下面自動移除了,全部都在新的下面。
kubectl set image deployment nginx-deployment nginx=nginx:1.13 kubectl get deployment kubectl get deployment -o wide kubectl get pods
- deployment查看歷史版本
kubectl rollout history deployment nginx-deployment
- deployment 回滾到之前的版本
又變成了nginx 1.12.2
kubectl rollout undo deployment nginx-deployment
- deployment 端口暴露
其實就是把端口暴露在minikube上。
kubectl get node
kubectl get node -o wide
kubectl expose deployment nginx-deployment --type=NodePort
#查看node節點暴露的端口30960
kubectl get svc
#進入minikube查看ip地址192.168.99.100
minikube ssh
PS:不管怎麽樣完成了服務的暴露,具體這個service是什麽,暴露的NodePort 是什麽東西,下次咱們在詳細說一下。
往期精彩
- docker導學(一)
- 容器的技術概述(二)
- docker的魅力初體驗-5分鐘安裝wordpress不走彎路(三)
- docker官網介紹(四)
- 如何在mac上安裝docker(五)
- 如何在window上安裝docker(六)
- 如何在mac上通過vagrant安裝虛擬機(七)
- 如何在window上通過vagrant安裝虛擬機(八)
- docker-Machine的本地使用(九)
- docker-Machine的本地使用(十)
- 在linux/mac下通過Docker-Machine在阿裏雲上的使用(11)
- docker架構和底層技術(12)
- docker Image概述(13)
- 手動建立一個base Image(14)
- 什麽是Container(15)
- 構建自己的Docker鏡像(16)
- Dockerfile詳解(17)
- 鏡像的發布(18)
- Dockerfile實戰(19)
- 容器的操作(20)
- Dockerfile實戰CMD和ENTRTYPOINT的配合(21)
- 容器的資源限制(22)
- docker網絡(23)
- docker學習必會網絡基礎(24)
- Linux網絡命名空間(25)
- Docker Bridge詳解(26)
- 容器之間的Link(27)
- 容器的端口映射(28)
- 容器網絡之host和none(29)
- 多容器復雜應用的部署(30)
- overlay網絡和etcd實現多機的容器通信(31)
- docker的數據持久化存儲和數據共享(32)
- windows下vagrant 通過SecureCRT連接centos7(33)
- 數據持久化之Data Volume(34)
- 數據持久化之bind Mounting(35)
- docker 使用bind Mounting實戰(36)
- docker容器安裝wordpress(37)
- docker Compose到底是什麽(38)
- Docker Compose的安裝和基本使用(39)
- Docker 水平擴展和負載均衡(40)
- Docker compose 部署一個復雜的應用(41)
- 容器編排Docker Swarm介紹(42)
- docker-swarm創建一個多節點集群(43)
- play with docker 的使用(44)
- docker-swarm中的Service創建維護和水平擴展(45)
- 在docker-swarm集群裏通過serivce部署wordpress(46)
- 集群服務間通信之RoutingMesh(47)
- RoutingMesh之Ingress負載均衡(48)
- Docker-Stack部署wordpress(49)
- Docker-Stack部署投票應用(50)
- Docker-Secret管理和使用(51)
- Docker service更新(52)
- Docker的收費模式(53)
- Docker-cloud介紹(54)
- Docker Cloud自動構建 Docker image(55)
- Docker企業版的在線免費體驗(56)
- docker企業版本地安裝之UCP(57)
- docker體驗阿裏雲的容器服務(58)
- 阿裏雲安裝Docker企業版UCP和DTR(59)
- Kubenetes簡介(60)
- Minikube快速搭建K8S單節點環境(61)
- K8S最小調度單位Pod(62)
- K8S橫向擴展功能ReplicaSet和ReplicationController(63)
『中級篇』k8s重要的Deployment(64)