如何在 Openshift 中删除 podAntiAfinity
How to delete podAntiAfinity in Openshift
我需要从多个部署配置中删除 podeAntiAfinity 属性。
到目前为止,我已经设法找到一种使用 oc 补丁 dc.
来更新此 属性 的方法
我的部署配置如下所示:
apiVersion: v1
kind: DeploymentConfig
metadata:
annotations:
openshift.io/generated-by: OpenShiftNewApp
creationTimestamp: 2018-05-25T17:31:47Z
generation: 8
labels:
app: my-app
name: my-dc
namespace: my-ns
spec:
replicas: 1
revisionHistoryLimit: 10
selector:
app: my-app
deploymentconfig: my-dc
strategy:
activeDeadlineSeconds: 21600
resources: {}
rollingParams:
intervalSeconds: 1
maxSurge: 1
maxUnavailable: 100%
timeoutSeconds: 600
updatePeriodSeconds: 1
type: Rolling
template:
metadata:
annotations:
alpha.image.policy.openshift.io/resolve-names: '*'
openshift.io/generated-by: OpenShiftNewApp
creationTimestamp: null
labels:
app: my-app
spec:
affinity:
nodeAffinity:
requiredDuringSchedulingIgnoredDuringExecution:
nodeSelectorTerms:
- matchExpressions:
- key: someKey
operator: DoesNotExist
podAntiAffinity:
requiredDuringSchedulingIgnoredDuringExecution:
- labelSelector:
matchExpressions:
- key: app
operator: In
values:
- another-app
topologyKey: kubernetes.io/hostname
我想删除 spec.template.spec.affinity.podAntiAffinity,同时保留 spec.template.spec.affinity.nodeAffinity。
有人可以帮忙吗?
oc patch
命令采用不同的补丁格式。您想要使用 json
格式,因为它允许您说应该删除一个项目。参见:
未经测试的猜测,补丁需要是:
[{ "op": "remove", "path": "/spec/template/spec/affinity/podAntiAffinity" }]
因此尝试:
oc patch dc/my-dc --type json --patch '[{ "op": "remove", "path": "/spec/template/spec/affinity/podAntiAffinity" }]'
我需要从多个部署配置中删除 podeAntiAfinity 属性。
到目前为止,我已经设法找到一种使用 oc 补丁 dc.
来更新此 属性 的方法我的部署配置如下所示:
apiVersion: v1
kind: DeploymentConfig
metadata:
annotations:
openshift.io/generated-by: OpenShiftNewApp
creationTimestamp: 2018-05-25T17:31:47Z
generation: 8
labels:
app: my-app
name: my-dc
namespace: my-ns
spec:
replicas: 1
revisionHistoryLimit: 10
selector:
app: my-app
deploymentconfig: my-dc
strategy:
activeDeadlineSeconds: 21600
resources: {}
rollingParams:
intervalSeconds: 1
maxSurge: 1
maxUnavailable: 100%
timeoutSeconds: 600
updatePeriodSeconds: 1
type: Rolling
template:
metadata:
annotations:
alpha.image.policy.openshift.io/resolve-names: '*'
openshift.io/generated-by: OpenShiftNewApp
creationTimestamp: null
labels:
app: my-app
spec:
affinity:
nodeAffinity:
requiredDuringSchedulingIgnoredDuringExecution:
nodeSelectorTerms:
- matchExpressions:
- key: someKey
operator: DoesNotExist
podAntiAffinity:
requiredDuringSchedulingIgnoredDuringExecution:
- labelSelector:
matchExpressions:
- key: app
operator: In
values:
- another-app
topologyKey: kubernetes.io/hostname
我想删除 spec.template.spec.affinity.podAntiAffinity,同时保留 spec.template.spec.affinity.nodeAffinity。
有人可以帮忙吗?
oc patch
命令采用不同的补丁格式。您想要使用 json
格式,因为它允许您说应该删除一个项目。参见:
未经测试的猜测,补丁需要是:
[{ "op": "remove", "path": "/spec/template/spec/affinity/podAntiAffinity" }]
因此尝试:
oc patch dc/my-dc --type json --patch '[{ "op": "remove", "path": "/spec/template/spec/affinity/podAntiAffinity" }]'