一旦运行了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