Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/kubernetes/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Docker 在kubernetes 1.18上运行应用程序时,版本/扩展B1Beta1中的部署类型不匹配_Docker_Kubernetes - Fatal编程技术网

Docker 在kubernetes 1.18上运行应用程序时,版本/扩展B1Beta1中的部署类型不匹配

Docker 在kubernetes 1.18上运行应用程序时,版本/扩展B1Beta1中的部署类型不匹配,docker,kubernetes,Docker,Kubernetes,这是我的kubernetes.yml apiVersion: extensions/v1beta1 kind: Deployment metadata: name: servicetwo labels: name: servicetwo namespace: sock-shop spec: replicas: 1 template: metadata: labels: name: servicetwo spec:

这是我的kubernetes.yml

apiVersion: extensions/v1beta1
kind: Deployment
metadata:
  name: servicetwo
  labels:
    name: servicetwo
  namespace: sock-shop
spec:
  replicas: 1
  template:
    metadata:
      labels:
        name: servicetwo
    spec:
      containers:
      - name: servicetwo
        image: nik/pythonserviceone
        ports:
         - containerPort: 5000
        
---
apiVersion: v1
kind: Service
metadata:
  name: servicetwo
  labels:
    name: servicetwo
  namespace: sock-shop
spec:
  ports:
    # the port that this service should serve on
  - port: 5000
    targetPort: 5000
    nodePort: 30003
  selector:
    name: servicetwo
  type: NodePort  
---
apiVersion: extensions/v1beta1
kind: Deployment
metadata:
  name: servicethree
  labels:
    name: servicethree
  namespace: sock-shop
spec:
  replicas: 1
  template:
    metadata:
      labels:
        name: servicethree
    spec:
      containers:
      - name: servicetwo
        image: nik/pythonservicetwo
        ports:
         - containerPort: 7000
---
apiVersion: v1
kind: Service
metadata:
  name: servicethree
  labels:
    name: servicethree
  namespace: sock-shop
spec:
  ports:
    # the port that this service should serve on
  - port: 7000
    targetPort: 7000
    nodePort: 30002
  selector:
    name: servicethree
  type: NodePort 
---
apiVersion: extensions/v1beta1
kind: Deployment
metadata:
  name: apigateway
  labels:
    name: apigateway
  namespace: sock-shop
spec:
  replicas: 1
  template:
    metadata:
      labels:
        name: apigateway
    spec:
      containers:
      - name:  apigateway
        image: ni/aggregatornew
        ports:
        - containerPort: 9000
        
---
apiVersion: v1
kind: Service
metadata:
  name:  apigateway
  labels:
    name:  apigateway
  namespace: sock-shop
spec:
  type: NodePort
  ports:
  - port: 9000
    targetPort: 9000
    nodePort: 30001
  selector:
    name: apigateway
---

我知道这个错误是因为kubernetes的新版本,但我无法修复这个问题,当我将extensions/v1beta1更改为apps/v1时,我开始得到错误服务Two not found,而运行
kubectl apply-f kubernets.yml
。kubernets 1.10运行得非常好,非常感谢您提供的任何帮助

除了更改为
apps/v1
之外,您还需要在
规范中添加新的必填字段
选择器:

像这样的东西应该适合你:

apiVersion: apps/v1
kind: Deployment
metadata:
  name: servicetwo
  labels:
    name: servicetwo
  namespace: sock-shop
spec:
  replicas: 1
  selector:               // new required field
    matchLabels:
      name: servicetwo     // must match your labels
  template:
    metadata:
      labels:
        name: servicetwo
    spec:
      containers:
      - name: servicetwo
        image: nik/pythonserviceone
        ports:
         - containerPort: 5000

我收到一个错误-第19行:无法从服务器中找到预期的“:”错误(无效):创建“\\kubernetes.yml”:Deployment.apps“servicetwo”时出错无效:spec.template.metadata.labels:无效值:map[string]string{“name”:“servicetwo”}:
选择器
与模板不匹配
标签
有三种部署和三种服务,我必须为所有这三种部署和服务执行?对,选择器中的标签必须与模板上的标签相同。查看我的更新。是的,所有部署都必须这样更改。