官方連接git
kubectl
命令,如使用kubectl create -f DIR_NAME
deployment不只能夠建立ReplicaSet來確保指望Pod可用狀態的數量,同時還能指定Pod替換的策略(如RollingUpdate),這些屬性都是優於直接建立裸Pod,除了一些特殊的場景如
restartPolicy: Never
。Job也可能適用。github
在建立Deployment或RS以前建立與之相關的Service,而且須要在全部的Deployment被訪問以前建立,當kubernetes啓動一個容器,被啓動的容器會提供指向全部服務的環境參數。例如,若是一個Service命名爲foo退出了,全部的容器將會在他們初始化環境的時候獲取到以下參數:docker
FOO_SERVICE_HOST=<the host the Service is running on> FOO_SERVICE_PORT=<the port the Service is running on>
若是您正在編寫與服務對話的代碼,請不要使用這些環境變量; 請改用服務的DNS名稱。 服務環境變量僅適用於沒法修改以使用DNS查找的舊軟件,而且是一種不太靈活的訪問服務的方式。json
若是隻是但願經過訪問端口用於調試目的,可使用apiserver proxy或者kubectl port-forwardapi
若是確實須要映射出Pod的端口到主機節點上,優先考慮使用NodePort而不是hostPort.緩存
定義和使用標識應用程序或部署的語義屬性的標籤,例如可使用相似的標籤:{app:myapp,tier:frontend,phase:test,deployment:v3}。 可使用這些標籤爲其餘資源選擇合適的Pod; 例如,選擇 tier: frontend 的Pod的服務等。app
經過標籤選擇器(Label Selector)選擇特定的Deployment發行版本,可使服務跨越多個Deployment。使用Deployment能夠輕鬆更新正在運行的服務,而無需停機。負載均衡
Deployment描述了對象所指望的狀態,而且若是更新對應的參數,則部署控制器以受控速率(滾動更新)將實際狀態改變爲指望狀態。less
容器的拉取鏡像參數(imagePullPolicy)決定了kubelet的拉取鏡像操做:frontend
在生產中部署容器時應避免使用latest標記,由於使用lastest難以跟蹤正在運行的鏡像版本,而且更難以正確回滾。
鏡像的分層緩存機制使得使用imagePullPolicy: Always 參數變得高效,如,在使用docker的環境中,若是鏡像已經存在,拉取鏡像的嘗試將會很是快,由於全部的鏡像層都已經緩存在本地,而不須要去下載鏡像。
使用kubectl apply -f <directory>
或kubectl create -f <directory>
,將會執行目錄中的全部 .yaml , .yml和 .json文件.
kubectl run
和kubectl expose
能夠快速建立單容器 Deployment和服務,參考集羣中使用Service訪問應用