【发布时间】:2020-09-12 12:42:57
【问题描述】:
我正在学习编写 helm 图表,特别是使用 range 来迭代 values.yml 中的列表并部署多个部署。也许有人可以理解我在部署多个 mysql 服务时做错了什么。我已经从我的主机(mac)尝试了节点端口和负载均衡器都无济于事。使用 nodeport,我得到一个针对节点 IP 的连接被拒绝。使用负载均衡器,我可以远程登录到 LB ip 地址和 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 }}
【问题讨论】:
标签: mysql kubernetes minikube