如何重启容器而不是删除 pod 并重新创建?
how to restart container instead of deleting pod and recreate?
有些情况下您想要重启特定容器而不是删除 pod 并让 Kubernetes 重新创建它。
我有一个 pod 运行 apache 容器。我确实在 apache 配置文件中进行了编辑。用于 SSL 证书虚拟主机端口更改等
现在我想重启 apache2 服务但不重新创建 pod。
我尝试在 pod 中使用
service apache2 restart
但它也会重新创建 pod,配置也会再次更改。
检查
您也可以创建一个新的 dockerfile 来覆盖 apache dockerfile 并更改 de CMD 行,但它更复杂
这不是它应该的工作方式。
您不应更改 POD
中的任何内容。
如果您的 POD
死亡或崩溃,Kubernetes 应该启动一个新的,一切都应该正常。
另请记住,您无法缩放已更改配置的 POD
。
请查看 Kubernetes 文档 Configure a Pod to Use a ConfigMap
您可以使用ConfigMap
创建配置文件。
ConfigMaps allow you to decouple configuration artifacts from image content to keep containerized applications portable. This page provides a series of usage examples demonstrating how to create ConfigMaps and configure Pods using data stored in ConfigMaps.
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
也可以通过创建 secret
或 secret
可以声明:
secret:
data:
username: my-username
password: my-password
name: secret_data
version: v1
还有其他选项,例如在新 POD
上需要配置的安装路径。
我建议你检查一下 Configure a Pod to Use a PersistentVolume for Storage
有些情况下您想要重启特定容器而不是删除 pod 并让 Kubernetes 重新创建它。
我有一个 pod 运行 apache 容器。我确实在 apache 配置文件中进行了编辑。用于 SSL 证书虚拟主机端口更改等
现在我想重启 apache2 服务但不重新创建 pod。
我尝试在 pod 中使用
service apache2 restart
但它也会重新创建 pod,配置也会再次更改。
检查
您也可以创建一个新的 dockerfile 来覆盖 apache dockerfile 并更改 de CMD 行,但它更复杂
这不是它应该的工作方式。
您不应更改 POD
中的任何内容。
如果您的 POD
死亡或崩溃,Kubernetes 应该启动一个新的,一切都应该正常。
另请记住,您无法缩放已更改配置的 POD
。
请查看 Kubernetes 文档 Configure a Pod to Use a ConfigMap
您可以使用ConfigMap
创建配置文件。
ConfigMaps allow you to decouple configuration artifacts from image content to keep containerized applications portable. This page provides a series of usage examples demonstrating how to create ConfigMaps and configure Pods using data stored in ConfigMaps.
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
也可以通过创建 secret
或 secret
可以声明:
secret:
data:
username: my-username
password: my-password
name: secret_data
version: v1
还有其他选项,例如在新 POD
上需要配置的安装路径。
我建议你检查一下 Configure a Pod to Use a PersistentVolume for Storage