在无头服务上设置 NodeAffinity 时出现问题
Problem setting NodeAffinity on Headless Service
按照本教程 (https://portworx.com/run-ha-kafka-azure-kubernetes-service/) 在 Azure Kubernetes 服务上设置 Kafka 集群,我 运行 在部署 Headless Zookeeper 服务时遇到问题。
运行这个yml用kubectl部署Zookeeper服务,报错如下
apiVersion: v1
kind: Service
metadata:
name: zk-headless
nodeAffinity: labels:
app: zk-headless
spec:
ports:
- port: 2888
name: server
- port: 3888
name: leader-election
clusterIP: None
selector:
app: zk
error converting YAML to JSON: yaml: line 5: mapping values are not allowed in this context
我的问题是,如何分配 nodeAffinity 值?我应该使用这个吗:
requiredDuringSchedulingIgnoredDuringExecution:
nodeSelectorTerms:
Kubernetes Service
对象没有 nodeAffinity
字段,因为 Service
资源在节点上没有 运行。事实上,它们根本 "run" - 它们是网络规则。
网站上提供的示例存在复制粘贴错误。应该是:
apiVersion: v1
kind: Service
metadata:
name: zk-headless
labels:
app: zk-headless
spec:
ports:
- port: 2888
name: server
- port: 3888
name: leader-election
clusterIP: None
selector:
app: zk
除了 Utku 的回答——我建议使用 "kubectl explain service" 命令来查看哪些字段可以添加到 kubernetes 对象,如服务或部署或 Pod
按照本教程 (https://portworx.com/run-ha-kafka-azure-kubernetes-service/) 在 Azure Kubernetes 服务上设置 Kafka 集群,我 运行 在部署 Headless Zookeeper 服务时遇到问题。
运行这个yml用kubectl部署Zookeeper服务,报错如下
apiVersion: v1
kind: Service
metadata:
name: zk-headless
nodeAffinity: labels:
app: zk-headless
spec:
ports:
- port: 2888
name: server
- port: 3888
name: leader-election
clusterIP: None
selector:
app: zk
error converting YAML to JSON: yaml: line 5: mapping values are not allowed in this context
我的问题是,如何分配 nodeAffinity 值?我应该使用这个吗:
requiredDuringSchedulingIgnoredDuringExecution:
nodeSelectorTerms:
Kubernetes Service
对象没有 nodeAffinity
字段,因为 Service
资源在节点上没有 运行。事实上,它们根本 "run" - 它们是网络规则。
网站上提供的示例存在复制粘贴错误。应该是:
apiVersion: v1
kind: Service
metadata:
name: zk-headless
labels:
app: zk-headless
spec:
ports:
- port: 2888
name: server
- port: 3888
name: leader-election
clusterIP: None
selector:
app: zk
除了 Utku 的回答——我建议使用 "kubectl explain service" 命令来查看哪些字段可以添加到 kubernetes 对象,如服务或部署或 Pod