首页 > 解决方案 > 如何重新启动容器而不是删除 pod 并重新创建?

问题描述

在某些情况下,您希望重新启动特定容器,而不是删除 pod 并让 Kubernetes 重新创建它。

我有一个运行 apache 容器的 pod。我在 apache 配置文件中进行了编辑。用于 SSL 证书虚拟主机端口更改等。

现在我想重新启动 apache2 服务但不重新创建 pod。

我试过在吊舱里面

service apache2 restart

但它也会重新创建 pod,并且配置也会再次更改。

标签: apachedockerkubernetesmoodle

解决方案


这不是它应该如何工作的。

您不应该更改POD. 如果你POD死了或崩溃了,Kubernetes 应该启动一个新的,一切都应该正常工作。另请记住,您无法扩展POD已更改配置的配置。

请查看 Kubernetes 文档配置 Pod 以使用 ConfigMap

您可以使用ConfigMap创建配置文件。

ConfigMaps 允许您将配置工件与图像内容分离,以保持容器化应用程序的可移植性。本页提供了一系列使用示例,演示如何使用存储在 ConfigMaps 中的数据创建 ConfigMaps 和配置 Pod。

ConfigMap可以创建和读取文件的内容:

$ kubectl create configmap config_data --from-file=config_data.txt

或者可以在 .yml 中声明

config_map:
  data: 
    db_name=colors_db
    table_name=purple
  name: config_data
  version: v1

这也可以通过创建secretsecret声明来完成:

secret:
  data:
    username: my-username
    password: my-password
  name: secret_data
  version: v1

我推荐阅读Kubernetes recipe: store nginx config with ConfigMap and reverse-proxy requests from your domain to your Github page

还有其他选项,例如在 new 上具有所需配置的安装路径POD。我建议您检查Configure a Pod to Use a PersistentVolume for Storage


推荐阅读