官方连接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访问应用