Docker 在kubernetes 1.18上运行应用程序时,版本/扩展B1Beta1中的部署类型不匹配
这是我的kubernetes.ymlDocker 在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:
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”}:选择器
与模板不匹配标签
有三种部署和三种服务,我必须为所有这三种部署和服务执行?对,选择器中的标签必须与模板上的标签相同。查看我的更新。是的,所有部署都必须这样更改。