首先给两个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

腾讯云面向开发者汇聚海量精品云计算使用和开发经验,营造开放的云计算技术生态圈。

更多推荐