StatefulSet without service name
This product is not supported for your selected
Datadog site. (
).
이 페이지는 아직 영어로 제공되지 않습니다. 번역 작업 중입니다.
현재 번역 프로젝트에 대한 질문이나 피드백이 있으신 경우
언제든지 연락주시기 바랍니다.Id: bb241e61-77c3-4b97-9575-c0f8a1e008d0
Cloud Provider: Kubernetes
Platform: Kubernetes
Severity: Low
Category: Availability
Learn More
Description
StatefulSets should reference an existing headless Service via spec.serviceName. The referenced Service must be headless (spec.clusterIP set to “None”) and located in the same namespace. All selector labels defined on the Service must be present on the StatefulSet pod template labels so the Service can target the StatefulSet’s pods.
Compliant Code Examples
#this is a problematic code where the query should report a result(s)
apiVersion: v1
kind: Service
metadata:
name: nginx2
namespace: nginx2
labels:
app: nginx2
spec:
ports:
- port: 80
name: web
clusterIP: None
selector:
app: nginx2
---
apiVersion: apps/v1
kind: StatefulSet
metadata:
name: web2
namespace: nginx2
spec:
selector:
matchLabels:
app: nginx2
serviceName: "nginx2"
replicas: 3
template:
metadata:
labels:
app: nginx2
foo: bar
spec:
terminationGracePeriodSeconds: 10
containers:
- name: nginx2
image: k8s.gcr.io/nginx-slim:0.8
ports:
- containerPort: 80
name: web
volumeMounts:
- name: www
mountPath: /usr/share/nginx/html
volumeClaimTemplates:
- metadata:
name: www
spec:
accessModes: [ "ReadWriteOnce" ]
storageClassName: "my-storage-class"
resources:
requests:
storage: 1Gi
Non-Compliant Code Examples
#this is a problematic code where the query should report a result(s)
apiVersion: v1
kind: Service
metadata:
name: nginx
namespace: nginx
labels:
app: nginx2
spec:
ports:
- port: 80
name: web
clusterIP: All
selector:
app: nginx
---
apiVersion: apps/v1
kind: StatefulSet
metadata:
name: web
namespace: nginx
spec:
selector:
matchLabels:
app: nginx
serviceName: "nginx"
replicas: 3
template:
metadata:
labels:
app: nginx
spec:
terminationGracePeriodSeconds: 10
containers:
- name: nginx
image: k8s.gcr.io/nginx-slim:0.8
ports:
- containerPort: 80
name: web
volumeMounts:
- name: www
mountPath: /usr/share/nginx/html
volumeClaimTemplates:
- metadata:
name: www
spec:
accessModes: [ "ReadWriteOnce" ]
storageClassName: "my-storage-class"
resources:
requests:
storage: 1Gi