deb*_*bek 5 kubernetes google-kubernetes-engine
我想将我的 Pod 部署在特定的命名空间中。我考虑了 Pod Affinity,但找不到如何选择特定命名空间的解决方案。有人做吗?
作为反关联性的一部分,您可以允许namespaceSelector: {}匹配labelSelector来自所有命名空间的 pod 上的标签,而不仅仅是 pod 自己的命名空间。
源代码中有关 NamespaceSelector 的注释: https://github.com/kubernetes/kubernetes/blob/287888b191968198679159580b1bb76b529aa8c0/staging/src/k8s.io/api/core/v1/types.go#L2927
例子
affinity:
podAntiAffinity:
preferredDuringSchedulingIgnoredDuringExecution:
- weight: 100
podAffinityTerm:
labelSelector:
matchExpressions:
- key: app.kubernetes.io/name
operator: In
values:
- foobar
topologyKey: "kubernetes.io/hostname"
namespaceSelector: {}
Run Code Online (Sandbox Code Playgroud)
编辑:pod亲和力的namespaceSelctor位于Alpha v1.21中
功能讨论:https://github.com/kubernetes/kubernetes/issues/68827
Pod 反亲和性是告诉 Kubernetes 在比运行其他 Pod Y 的节点更远的节点(机器)中调度(运行)这个 Pod X。
所以 :
看这个例子:
apiVersion: v1
kind: Pod
metadata:
name: pod-x
spec:
affinity:
podAntiAffinity:
preferredDuringSchedulingIgnoredDuringExecution:
- weight: 100
podAffinityTerm:
labelSelector:
matchExpressions:
- key: y-key
operator: In
values:
- y-value
topologyKey: failure-domain.beta.kubernetes.io/zone
Run Code Online (Sandbox Code Playgroud)
在这个例子中:
failure-domain.beta.kubernetes.io/zone如果这一点很清楚,您将看到名称空间与反亲和力甚至亲和力无关。
查看官方文档也是一个很好的做法。
| 归档时间: |
|
| 查看次数: |
7564 次 |
| 最近记录: |