Я учусь писать диаграммы управления, в частности, использую диапазон для перебора списка в values.yml и развертывания нескольких развертываний. Может быть, кто-то поймет, что я делаю не так с этим развертыванием нескольких служб mysql. Я безрезультатно пробовал порт узла и балансировщик нагрузки на моем хост-компьютере (ma c). С nodeport я получаю отказ в соединении с IP-адресом узла. С помощью балансировщика нагрузки я могу подключиться к lnet IP-адресу LB и mysql порту, но не могу подключиться к mysql. Подключение зависает.
values.yaml
instances:
mysql01:
port: 30061
mysql02:
port: 30062
mysql03:
port: 30063
image:
name: mysql
tag: 5.7
service.yaml
{{- range $key, $value := .Values.instances }}
---
apiVersion: v1
kind: Service
metadata:
name: service-{{ $key }}
labels:
name: service-{{ $key }}
spec:
type: LoadBalancer
ports:
- port: 3306
targetPort: 3306
nodePort: {{ .port }}
protocol: "TCP"
selector:
name: {{ $key }}
{{- end }}
deployment.yaml
{{- range $key, $value := .Values.instances }}
---
apiVersion: apps/v1
kind: Deployment
metadata:
name: {{ $key }}
labels:
app: {{ $key }}
spec:
selector:
matchLabels:
app: {{ $key }}
strategy:
type: Recreate
template:
metadata:
labels:
app: {{ $key }}
spec:
containers:
- image: {{ required "Please set image.name" $.Values.image.name }}:{{ required "Please set image.tag" $.Values.image.tag }}
name: {{ $key }}
env:
- name: MYSQL_ROOT_PASSWORD
value: password-{{ $key }}
livenessProbe:
tcpSocket:
port: 3306
ports:
- containerPort: 3306
name: mysql
volumeMounts:
- name: persistent-storage-{{ $key }}
mountPath: /var/lib/mysql
volumes:
- name: persistent-storage-{{ $key }}
persistentVolumeClaim:
claimName: pv-claim-{{ $key }}
{{- end }}