这是我的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,但我无法解决这个问题,当我将扩展/v1beta1更改为apps/v1时,我开始在运行kubectl apply -f kubernets.yml
时发现错误servicetwo。由于kuberentes 1.10运行得很完美,任何帮助都将不胜感激,感谢
除了更改为apps/v1
,您还需要在spec:
中添加新的必填字段selector:
像这样的东西应该对你有用:
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