概念

Edit This Page

配置最佳实践

本文档重点介绍并整合了整个用户指南、入门文档和示例中介绍的配置最佳实践。

这是一份活文件。 如果您认为某些内容不在此列表中但可能对其他人有用,请不要犹豫,提交问题或提交 PR。

一般配置提示

“Naked”Pods 与 ReplicaSet,Deployment 和 Jobs

部署,它创建一个 ReplicaSet 以确保所需数量的 Pod 始终可用,并指定替换 Pod 的策略(例如 RollingUpdate),除了一些显式的restartPolicy: Never场景之外,几乎总是优先考虑直接创建 Pod。 Job 也可能是合适的。

服务

  FOO_SERVICE_HOST=<the host the Service is running on>
  FOO_SERVICE_PORT=<the port the Service is running on>

这确实意味着订购要求 - 必须在Pod本身之前创建Pod想要访问的任何Service,否则将不会填充环境变量。 DNS没有此限制。

如果您只需要访问端口以进行调试,则可以使用apiserver proxykubectl port-forward

如果您明确需要在节点上公开 Pod 的端口,请在使用hostPort之前考虑使用NodePort 服务。

使用标签

通过从选择器中省略特定发行版的标签,可以使服务跨越多个部署。 部署可以在不停机的情况下轻松更新正在运行的服务。

部署描述了对象的期望状态,并且如果对该规范的更改是_applied_,则部署控制器以受控速率将实际状态改变为期望状态。

容器镜像

kubelet尝试拉取指定的镜像时,[imagePullPolicy](/ docs / concepts / containers / images / #updating-images)和镜像的标签会生效。

注意:

要确保容器始终使用相同版本的镜像,你可以指定其 摘要, 例如sha256:45b23dee08af5e43a7fea6c4cf9c25ccf269ee113168c19722f87876677c5cb2。 摘要唯一地标识出镜像的指定版本,因此除非您更改摘要值,否则 Kubernetes 永远不会更新它。

注意:

在生产中部署容器时应避免使用 :latest 标记,因为更难跟踪正在运行的镜像版本,并且更难以正确回滚。

注意:

底层镜像提供程序的缓存语义甚至使 imagePullPolicy: Always变得高效。 例如,对于 Docker,如果镜像已经存在,则拉取尝试很快,因为镜像层都被缓存并且不需要镜像下载。

使用 kubectl

反馈