gpt4 book ai didi

kubernetes - 一个词启动时删除所有pod(pod名称不全)

转载 作者:行者123 更新时间:2023-12-05 08:22:19 26 4
gpt4 key购买 nike

我在 OC 中有一些项目,Pod 的名称是在链和提交的基础上生成的。因此,我想在 AzureDevOps 中创建一条指令,以通过不完整的名称删除所有 pod,该名称具有特定字符,但以其他字符结尾。

例子:

root@oc-jump-pod:/# oc get po
NAME READY STATUS RESTARTS AGE
podA-74rt7 1/1 Running 0 20h
podB-6744849c59 1/1 Running 0 20h
podB-6746378213 1/1 Running 0 20h

我需要使用类似的东西:

oc delete po podB*
Error from server (NotFound): pods "podB*" not found

如何使用几个字符而不是 pod 的完整名称来过滤删除?

添加了 DeployConfig:

root@oc-jump-pod-pre:/# oc describe deploy NAME
Name: NAME
Namespace: NAME-pre
CreationTimestamp: Mon, 25 May 2020 07:01:14 +0000
Labels: app.kubernetes.io/instance=NAME
app.kubernetes.io/managed-by=Helm
app.kubernetes.io/name=NAME
app.kubernetes.io/version=latest
helm.sh/chart=NAME-1.0.0
Annotations: deployment.kubernetes.io/revision=3
meta.helm.sh/release-name=NAME
meta.helm.sh/release-namespace=sda-NAME-pre
Selector: app.kubernetes.io/instance=NAME,app.kubernetes.io/name=NAME
Replicas: 1 desired | 1 updated | 1 total | 1 available | 0 unavailable
StrategyType: RollingUpdate
MinReadySeconds: 0
RollingUpdateStrategy: 25% max unavailable, 25% max surge
Pod Template:
Labels: app.kubernetes.io/instance=NAME
app.kubernetes.io/name=NAME
Service Account: default
Containers:
NAME:
Image: registry/sda-NAME-dev/test-NAME-java:0.0.2
Port: 8080/TCP
Limits:
cpu: 150m
memory: 1444Mi
Requests:
cpu: 100m
memory: 1Gi
Environment:
APP_NAME: NAME
JAVA_OPTS_EXT: ....
SPRING_CLOUD_CONFIG_PROFILE: pre
TZ: Europe/Madrid
WILY_MOM_PORT: 5001
spring_application_name: NAME_pre
spring_cloud_config_uri: https://config.d.cluster.local
Mounts:
/etc/jks from jks (ro)
/etc/secret-vol from secretvol (ro)
/etc/truststore from jssecacerts (ro)
Volumes:
....
Conditions:
Type Status Reason
---- ------ ------
Progressing True NewReplicaSetAvailable
Available True MinimumReplicasAvailable
OldReplicaSets: NAME-6744849c59 (1/1 replicas created)
NewReplicaSet: <none>
Events: <none>

最佳答案

对于基于正则表达式的方法,以下命令将删除所有以“podB”开头的 pod

oc get pods | awk '/^podB/{system("oc delete pod " $1)}'

无论如何,我会推荐使用 Dashrath Mundkar 提供的方法。对于 openshift,如果您只想访问当前项目中的资源,则无需提供任何命名空间,因此您只需从命令中删除“-n 命名空间”

oc get pod -l labelname=value
oc delete pod -l labelname=value

只需确保您提供的标签对于您要删除的 pod 是唯一的

关于kubernetes - 一个词启动时删除所有pod(pod名称不全),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63068873/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com