首先给两个node节点打标签:

[root@k8s-master]# kubectl label nodes k8s-node-1 node=node1 
node "k8s-node-1" labeled
[root@k8s-master]# kubectl label nodes k8s-node-2 node=node2 
node "k8s-node-2" labeled
[root@k8s-master]# kubectl  get node --show-labels=true
NAME         STATUS    ROLES     AGE       VERSION   LABELS
k8s-master   Ready     master    22h       v1.9.0    beta.kubernetes.io/arch=amd64,beta.kubernetes.io/os=linux,kubernetes.io/hostname=k8s-master,node-role.kubernetes.io/master=
k8s-node-1   Ready     <none>    22h       v1.9.0    beta.kubernetes.io/arch=amd64,beta.kubernetes.io/os=linux,kubernetes.io/hostname=k8s-node-1,node=node1
k8s-node-2   Ready     <none>    22h       v1.9.0    beta.kubernetes.io/arch=amd64,beta.kubernetes.io/os=linux,kubernetes.io/hostname=k8s-node-2,node=node2

然后创建测试fabric-orderer.yaml文件:

---
apiVersion: extensions/v1beta1
kind: Deployment
metadata:
  name: my-test
spec:
  replicas: 2
  template:
    metadata:
      labels:
        k8s-app: fabric-orderer
    spec:
      nodeSelector:
          node: node1
      containers:
        - name:  fabric-orderer-select-node1
          image: hyperledger/fabric-orderer:1.4.3
          imagePullPolicy: Never
          ports:
          - containerPort: 80

随后创建该deployment:

[root@k8s-master my-test]# kubectl create -f fabric-orderer.yaml 
error: error validating "fabric-orderer.yaml": error validating data: [ValidationError(Deployment.spec.template.metadata.labels): invalid type for io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta.labels: got "string", expected "map", ValidationError(Deployment.spec.template.spec.nodeSelector): invalid type for io.k8s.api.core.v1.PodSpec.nodeSelector: got "string", expected "map"]; if you choose to ignore these errors, turn validation off with --validate=false

报错关键在:got "string", expected "map",那应该是yaml文件格式问题,上下对比后发现:

   labels:
        k8s-app: fabric-orderer  //冒号后要有空格
    spec:
      nodeSelector:
          node: node1  //冒号后要有空格

修改后就成功了:

[root@k8s-master my-test]# kubectl create -f fabric-orderer.yaml 
deployment "my-test" created

Logo

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。

更多推荐