I am working with spring boot with microservices. I dockerize my all microservices and now I am trying to create resource in kubernates cluster. I get error while create resource in cluster through running kubectl apply
.
Here down is my configuration file for kubernates:
eureka-server.yml
kind: ConfigMap
apiVersion: v1
metadata:
name: eureka-cm
data:
eureka_service_address: http://eureka-0.eureka:8761/eureka
---
apiVersion: v1
kind: Service
metadata:
name: eureka
labels:
app: eureka
spec:
ClusterIP: None
ports:
- port: 8761
name: eureka
selector:
app: eureka
---
apiVersion: apps/v1
kind: StatefulSet
metadata:
name: eureka
spec:
selector:
matchLabels:
app: eureka
serviceName: "eureka"
replicas: 1
template:
metadata:
labels:
app: eureka
spec:
containers:
- name: eureka
image: username/eureka-server:latest
imagePullPolicy: Always
ports:
- containerPort: 8761
env:
- name: EUREKA_SERVER_ADDRESS
valueFrom:
configMapKeyRef:
name: eureka-cm
key: eureka_service_address
---
apiVersion: v1
kind: Service
metadata:
name: eureka-lb
labels:
app: eureka
spec:
selector:
app: eureka
type: NodePort
ports:
- port: 80
targetPort: 8761
Configuration file in spring boot for eureka server:
application.yml
server:
port: 8761
eureka:
instance:
hostname: "${HOSTNAME}.eureka"
client:
registerWithEureka: false
fetchRegistry: false
service-url:
defaultZone: ${EUREKA_SERVER_ADDRESS}
server:
waitTimeInMsWhenSyncEmpty: 0
Here down is my error I got while create resource in kubernates cluster:
error: error validating "./eureka-server.yml": error validating data: ValidationError(Service.spec): unknown field "ClusterIP" in io.k8s.api.core.v1.ServiceSpec; if you choose to ignore these errors, turn validation off with --validate=false
CodePudding user response:
Well the error message you get is essentially the answer to your question. The field ClusterIP
does not exist, but it is actually called clusterIP
, which you can easily find out by reading the API reference.