Kubernetes 部署运行应用程序的多个副本,并自动替换任何失败或无响应的实例。
在练习 Kubernetes 时,您经常需要删除 Kubernetes 部署。
借助 kubectl delete deployments 命令,删除部署很容易:
kubectl delete deployment deployment_name
我将通过获取部署名称的步骤更详细地讨论它。 我还将向您展示另一种在 Kubernetes 中删除部署的方法。
使用 kubectl delete deployment 命令删除 Kubernetes 部署
虽然它通常会完成选项卡,但最好使用要删除的部署的名称。
[email protected]:~# kubectl get deployments
NAME READY UP-TO-DATE AVAILABLE AGE
my-dep 2/2 2 2 4m22s
获得部署名称后,只需像这样使用它:
kubectl delete deployments my-dep
它应该显示一个输出,告诉您您的部署已被删除:
[email protected]:~/pod-create# kubectl delete deployments my-dep
deployment.apps "my-dep" deleted
您可以通过检查可用的部署来验证它:
[email protected]:~/pod-create# kubectl get deployments
No resources found in default namespace.
您也可以在 kubectl delete deployment
命令。 全部都是一样。
从特定命名空间中删除 Kubernetes 部署
这 kubectl delete deployments
命令删除存在于“默认”命名空间中的部署,除非您提供不同的命名空间。
Kubernetes 中的命名空间是什么?
命名空间旨在用于有许多用户分布在多个团队或项目中的环境。 它就像 Kubernetes 集群中的一个单独的虚拟集群。
为了 example,您可以使用单独的命名空间来隔离生产、暂存和开发环境的工作负载。
列出所有可用的命名空间及其部署
要查看所有命名空间,请使用以下命令:
[email protected]:~# kubectl get namespaces
NAME STATUS AGE
default Active 46d
kube-node-lease Active 46d
kube-public Active 46d
kube-system Active 46d
webapps Active 22d
您还可以列出所有命名空间中的所有部署:
[email protected]:~# kubectl get deployments --all-namespaces
NAMESPACE NAME READY UP-TO-DATE AVAILABLE AGE
default my-dep2 2/2 2 2 3h29m
kube-system calico-kube-controllers 1/1 1 1 46d
kube-system coredns 2/2 2 2 46d
webapps webapps-dep 2/2 2 2 5h19m
当您拥有命名空间和部署名称时,您可以将其指定给 kubectl delete 部署命令:
[email protected]:~# kubectl delete deployments --namespace=webapps webapps-dep
deployment.apps "webapps-dep" deleted
如你看到的, webapps-dep
已被删除。
[email protected]:~# kubectl get deployments --all-namespaces
NAMESPACE NAME READY UP-TO-DATE AVAILABLE AGE
default my-dep2 2/2 2 2 3h29m
kube-system calico-kube-controllers 1/1 1 1 46d
kube-system coredns 2/2 2 2 46d
删除多个部署
您可以通过提供如下名称来删除多个 Kubernetes 部署:
[email protected]:~/pod-create# kubectl delete deployment my-dep my-dep-2 --namespace=default
使用其 YAML 配置文件删除 Kubernetes 部署
您也可以使用 YAML 配置文件来删除与其关联的资源。
[email protected]:~/pod-create# kubectl delete -f deployment-definition.yml
deployment.apps "my-dep" deleted
让我一步一步地向你展示。
使用 deployment-definition.yml 文件创建一个新部署:
[email protected]:~# cat pod-create/deployment-definition.yml
apiVersion: apps/v1
kind: Deployment
metadata:
name: my-dep
labels:
app: webapp
namespace: default
spec:
template:
metadata:
name: my-dep-pods
labels:
app: webapp
tier: front-end
spec:
containers:
- name: httpd
image: httpd
imagePullPolicy: IfNotPresent
ports:
- containerPort: 80
replicas: 2
selector:
matchLabels:
tier: front-end
使用上述 YAML 文件创建部署:
[email protected]:~/pod-create# kubectl apply -f deployment-definition.yml
deployment.apps/my-dep created
您现在可以看到部署:
[email protected]:~# kubectl get deployments --all-namespaces
NAMESPACE NAME READY UP-TO-DATE AVAILABLE AGE
default my-dep 2/2 2 2 1m13s
现在,如果您出于删除目的引用相同的 YAML 文件,它将删除与该文件关联的资源(此处为部署)。
[email protected]:~/pod-create# kubectl delete -f deployment-definition.yml
deployment.apps "my-dep" deleted
您可以通过列出所有部署来验证它:
[email protected]:~/pod-create# kubectl get deployments
No resources found in default namespace.
希望你喜欢这个快速的 K8s 技巧。 我们将介绍更多 Kubernetes 教程。 订阅更多学习资料。