Во-первых, вы должны использовать селектор только тогда, когда у вас есть метка. Вы должны определить метки в метаданных развертывания и использовать их в наборе реплик.
apiVersion: apps/v1
kind: Deployment
metadata:
name: elastickibana
labels:
app: elastickibana
spec:
replicas: 1
selector:
matchLabels:
app: elastickibana
template:
metadata:
labels:
app: elastickibana
spec:
containers:
- name: elk
image: daniccan/kibana-plugin-tester:latest
imagePullPolicy: Always
ports:
- containerPort: 5601
- containerPort: 9200
env:
- name: KIBANA_VERSION
value: 6.8.2
- name: PLUGIN_FILE_NAME
value: kibana-c8-plugin-Alpha-0.0.1-Kibana-6.8.2.zip
- name: KIBANA_PLUGIN_PATH
value: /home/sreenivasa/Projects/c8/infrastructure/capsule8-sandbox
---
kind: Service
apiVersion: v1
metadata:
name: elk-service
labels:
app: elastickibana
spec:
type: LoadBalancer
externalIPs:
- 10.0.2.15
selector:
app: elastickibana
ports:
- port: 5601
name: elasticservice
ports:
- port: 9200
name: serving-http
Ваш сервис также был неверным: он должен соответствовать меткам пакетов, если он не совпадает, сервис не будет назначаться никаким конечным точкам (IP-адресам пакетов)
$ kubectl get ep elk-service
NAME ENDPOINTS AGE
elk-service <none> 9m27s
Если назначить правильный селектор меток:
$ kubectl get ep elk-service
NAME ENDPOINTS AGE
elk-service 172.17.0.6:9200 10m
Ссылка: https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/