Kubernetes 何时使用“应用”何时使用“卷展栏”?
我是库伯内特的新手,对Kubernetes 何时使用“应用”何时使用“卷展栏”?,kubernetes,Kubernetes,我是库伯内特的新手,对apply和rollout命令有点困惑。如果我更新kubernete配置文件,我应该使用kubectl apply-f还是kubectl卷展栏 如果我更新kubernete配置并运行kubectl apply-f,它将终止正在运行的pod并创建一个新pod 但是卷展栏也有重启命令,用于重启pod。那么,我应该在什么时候使用卷展栏重新启动?用于应用配置文件kubernetes的kubectl apply-f(您部署所需应用程序的位置) 而kubectl卷展栏用于检查上述部署的
apply
和rollout
命令有点困惑。如果我更新kubernete配置文件,我应该使用kubectl apply-f
还是kubectl卷展栏
如果我更新kubernete配置并运行kubectl apply-f
,它将终止正在运行的pod并创建一个新pod
但是
卷展栏
也有重启
命令,用于重启pod。那么,我应该在什么时候使用卷展栏重新启动?用于应用配置文件kubernetes的kubectl apply-f
(您部署所需应用程序的位置)
而kubectl卷展栏
用于检查上述部署的应用程序
范例
假设您的部署配置文件如下所示,并将其保存在nginx.yaml文件中。现在,您需要从下面的yaml文件部署nginx应用程序。因此,您应该使用kubectl apply-f nginx.yaml
,现在您需要检查您的应用程序部署是否成功,是否使用kubectl卷展状态nginx
apiVersion: apps/v1
kind: Deployment
metadata:
name: nginx
labels:
app: nginx
spec:
replicas: 3
selector:
matchLabels:
app: nginx
template:
metadata:
labels:
app: nginx
spec:
containers:
- name: nginx
image: nginx:1.14.2
ports:
- containerPort: 80
如果您在本地更新了yaml,并且希望将其替换为现有的,那么请使用kubectl replace-f nginx.yaml
用于应用配置文件kubernetes的kubectl apply-f
而kubectl卷展栏
用于检查上述部署的应用程序
范例
假设您的部署配置文件如下所示,并将其保存在nginx.yaml文件中。现在,您需要从下面的yaml文件部署nginx应用程序。因此,您应该使用kubectl apply-f nginx.yaml
,现在您需要检查您的应用程序部署是否成功,是否使用kubectl卷展状态nginx
apiVersion: apps/v1
kind: Deployment
metadata:
name: nginx
labels:
app: nginx
spec:
replicas: 3
selector:
matchLabels:
app: nginx
template:
metadata:
labels:
app: nginx
spec:
containers:
- name: nginx
image: nginx:1.14.2
ports:
- containerPort: 80
如果您在本地更新了yaml,并且希望将其替换为现有的,那么使用kubectl replace-f nginx.yaml
我能想到的一个主要区别是kubectl apply
可以用于所有Kubernetes对象(Pod
,Deployment
,ConfigMaps
,Secrets
,等等)其中,kubectl卷展栏
特别适用于处理某些计算的对象,如部署
,状态集
,等等
此外,kubectl卷展栏restart
有助于重新启动POD,而无需对spec
字段进行任何更改,这是kubectl apply
无法实现的。如果我们运行kubectl apply
,而spec
字段中没有任何更改,POD将不会得到更新,因为没有要更新的更改
考虑这样一种情况,即某些配置(例如,外部证书)作为ConfigMap
装载到POD上,并且ConfigMap
中的任何更改都不会导致POD自动更新kubectl卷展栏重新启动
在这种情况下非常有用,可以创建新的POD,然后从ConfigMap
读取更新的配置
此外,还需要注意以下事项:
注意:当且仅当
部署的Pod模板(即,.spec.template)已更改,例如
更新模板的标签或容器图像时的示例。
其他更新(如扩展部署)不会触发
卷展
我能想到的一个主要区别是kubectl apply
可以用于所有Kubernetes对象(Pod
,Deployment
,ConfigMaps
,Secrets
,等等),其中kubectl卷展栏
特别适用于处理一些计算的对象,如部署
,状态集
等
此外,kubectl卷展栏restart
有助于重新启动POD,而无需对spec
字段进行任何更改,这是kubectl apply
无法实现的。如果我们运行kubectl apply
,而spec
字段中没有任何更改,POD将不会得到更新,因为没有要更新的更改
考虑这样一种情况,即某些配置(例如,外部证书)作为ConfigMap
装载到POD上,并且ConfigMap
中的任何更改都不会导致POD自动更新kubectl卷展栏重新启动
在这种情况下非常有用,可以创建新的POD,然后从ConfigMap
读取更新的配置
此外,还需要注意以下事项:
注意:当且仅当
部署的Pod模板(即,.spec.template)已更改,例如
更新模板的标签或容器图像时的示例。
其他更新(如扩展部署)不会触发
卷展