Black lives matter.
We stand in solidarity with the Black community.
Racism is unacceptable.
It conflicts with the core values of the Kubernetes project and our community does not tolerate it.
We stand in solidarity with the Black community.
Racism is unacceptable.
It conflicts with the core values of the Kubernetes project and our community does not tolerate it.
本文档重点介绍并整合了整个用户指南、入门文档和示例中介绍的配置最佳实践。
这是一份活文件。 如果您认为某些内容不在此列表中但可能对其他人有用,请不要犹豫,提交问题或提交 PR。
kubectl命令。
例如,你可以在配置文件的目录中调用kubectl apply。Deployment,它创建一个 ReplicaSet 以确保所需数量的 Pod 始终可用,并指定替换 Pod 的策略(例如 RollingUpdate),除了一些显式的restartPolicy: Never场景之外,几乎总是优先考虑直接创建 Pod。
Job 也可能是合适的。
在其相应的后端工作负载(Deployment 或 ReplicaSet)之前,以及在需要访问它的任何工作负载之前创建服务。
当 Kubernetes 启动容器时,它提供指向启动容器时正在运行的所有服务的环境变量。
例如,如果存在名为foo当服务,则所有容器将在其初始环境中获取以下变量。
FOO_SERVICE_HOST=<the host the Service is running on>
FOO_SERVICE_PORT=<the port the Service is running on>
这确实意味着订购要求 - 必须在Pod本身之前创建Pod想要访问的任何Service,否则将不会填充环境变量。
DNS没有此限制。
Services监视 Kubernetes API,并为每个创建一组 DNS 记录。
如果在整个集群中启用了 DNS,则所有Pods应该能够自动对Services进行名称解析。hostPort。
将 Pod 绑定到hostPort时,它会限制 Pod 可以调度的位置数,因为每个<hostIP, hostPort, protocol>组合必须是唯一的。如果您没有明确指定hostIP和protocol,Kubernetes将使用0.0.0.0作为默认hostIP和TCP作为默认protocol。如果您只需要访问端口以进行调试,则可以使用apiserver proxy或kubectl port-forward。
如果您明确需要在节点上公开 Pod 的端口,请在使用hostPort之前考虑使用NodePort 服务。
hostNetwork,原因与hostPort相同。kube-proxy负载平衡时,使用 [无头服务](/docs/concepts/services-networking/service/#headless-
services) (具有None的ClusterIP)以便于服务发现。{ app: myapp, tier: frontend, phase: test, deployment: v3 }。
您可以使用这些标签为其他资源选择合适的 Pod;例如,一个选择所有tier: frontend Pod 的服务,或者app: myapp的所有phase: test组件。
有关此方法的示例,请参阅留言板 。通过从选择器中省略特定发行版的标签,可以使服务跨越多个部署。 部署可以在不停机的情况下轻松更新正在运行的服务。
部署描述了对象的期望状态,并且如果对该规范的更改是_applied_,则部署控制器以受控速率将实际状态改变为期望状态。
kubectl label。当 kubelet尝试拉取指定的镜像时,imagePullPolicy和镜像标签会生效。
imagePullPolicy: IfNotPresent:仅当镜像在本地不存在时镜像才被拉取。imagePullPolicy: Always:每次启动 pod 的时候都会拉取镜像。imagePullPolicy 省略时,镜像标签为 :latest 或不存在,使用 Always 值。imagePullPolicy 省略时,指定镜像标签并且不是 :latest,使用 IfNotPresent 值。imagePullPolicy: Never:假设镜像已经存在本地,不会尝试拉取镜像。注意: 要确保容器始终使用相同版本的镜像,你可以指定其 摘要, 例如sha256:45b23dee08af5e43a7fea6c4cf9c25ccf269ee113168c19722f87876677c5cb2。 摘要唯一地标识出镜像的指定版本,因此除非您更改摘要值,否则 Kubernetes 永远不会更新它。
注意: 在生产中部署容器时应避免使用:latest标记,因为更难跟踪正在运行的镜像版本,并且更难以正确回滚。
注意: 底层镜像提供程序的缓存语义甚至使imagePullPolicy: Always变得高效。 例如,对于 Docker,如果镜像已经存在,则拉取尝试很快,因为镜像层都被缓存并且不需要镜像下载。
kubectl apply -f <directory>。
它在<directory>中的所有.yaml,.yml和.json文件中查找 Kubernetes 配置,并将其传递给apply。kubectl run和kubectl expose来快速创建单容器部署和服务。
有关示例,请参阅使用服务访问集群中的应用程序。