一旦運行了Kubernetes集羣,就能夠在其上部署容器化應用程序。爲此,您須要建立Kubernetes Deployment配置。Deployment指示Kubernetes如何建立和更新應用程序的實例。建立Deployment後,Kubernetes調度組件將應用程序實例提到集羣中的各個節點上。node
建立應用程序實例後,Kubernetes Deployment Controller會持續監視這些實例。若是託管實例的節點關閉或被刪除,則Deployment控制器會替換它。這提供了一種自我修復機制來解決機器故障或維護問題。linux
[root@master ~]# kubectl version Client Version: version.Info{Major:"1", Minor:"13", GitVersion:"v1.13.2", GitCommit:"cff46ab41ff0bb44d8584413b598ad8360ec1def", GitTreeState:"clean", BuildDate:"2019-01-10T23:35:51Z", GoVersion:"go1.11.4", Compiler:"gc", Platform:"linux/amd64"} Server Version: version.Info{Major:"1", Minor:"13", GitVersion:"v1.13.2", GitCommit:"cff46ab41ff0bb44d8584413b598ad8360ec1def", GitTreeState:"clean", BuildDate:"2019-01-10T23:28:14Z", GoVersion:"go1.11.4", Compiler:"gc", Platform:"linux/amd64"}
這裏只有一個控制節點做爲工做節點,注意要去掉控制節點的污點。api
[root@master ~]# kubectl get nodes NAME STATUS ROLES AGE VERSION master Ready master 2d8h v1.13.2
經過建立一個部署(deployment),部署一個應用bash
[root@master ~]# kubectl run kubernetes-bootcamp --image=jocatalin/kubernetes-bootcamp:v1 --port=8080 kubectl run --generator=deployment/apps.v1 is DEPRECATED and will be removed in a future version. Use kubectl run --generator=run-pod/v1 or kubectl create instead. deployment.apps/kubernetes-bootcamp created
這個操做會在後臺進行下面的動做:服務器
咱們看到有1個部署正在運行應用程序的單個實例網絡
[root@master ~]# kubectl get deployments NAME READY UP-TO-DATE AVAILABLE AGE kubernetes-bootcamp 1/1 1 1 26m
Pods運行在k8s的內部網絡,他們可以被同一個集羣的Pods訪問,可是不能被外部網絡訪問。app
kubectl命令能夠建立一個代理,將通訊轉發到集羣範圍的專用網絡中。代理能夠經過按control-c終止,而且在運行時不會顯示任何輸出。curl
咱們將打開第二個終端窗口來運行代理。ui
[root@master ~]# kubectl proxy Starting to serve on [::]:8001
api服務器將根據pod名稱自動爲每一個pod建立一個端點,該端點也能夠經過代理訪問。url
首先,咱們須要獲取pod名稱,而後將其存儲在環境變量pod_name中:
export POD_NAME=$(kubectl get pods -o go-template --template '{{range .items}}{{.metadata.name}}{{"\n"}}{{end}}') echo Name of the Pod: $POD_NAME
經過pod的名稱訪問應用
[root@master ~]# curl http://localhost:8001/api/v1/namespaces/default/pods/$POD_NAME/proxy/ Hello Kubernetes bootcamp! | Running on: kubernetes-bootcamp-7f56b875dc-6zbjt | v=1