我正在尝试使用 mysql 进行 kubernetes 部署,以便我可以从我的主机连接到它。
这是部署文件:
apiVersion: apps/v1
kind: Deployment
metadata:
name: database
spec:
replicas: 1
selector:
matchLabels:
app: database
template:
metadata:
labels:
app: database
spec:
containers:
- name: database
image: mysql:5.6
env:
- name: MYSQL_ROOT_PASSWORD
valueFrom:
secretKeyRef:
name: mysql-secret
key: password
- name: MYSQL_USER
valueFrom:
secretKeyRef:
name: mysql-secret
key: username
- name: MYSQL_PASSWORD
valueFrom:
secretKeyRef:
name: mysql-secret
key: password
ports:
- containerPort: 3306
protocol: TCP
resources:
limits:
cpu: "250m"
memory: "1Gi"
volumes:
- name: mysql-persistent-storage
persistentVolumeClaim:
claimName: mysql-pv-claim
---
apiVersion: v1
kind: Service
metadata:
name: mysql
spec:
type: NodePort
selector:
app: mysql
ports:
- port: 3306
targetPort: 3306
nodePort: 32700
externalIPs:
- 1.2.4.8
如果我运行
minikube service list
,则会显示:
|----------------------|---------------------------|--------------|-----|
| NAMESPACE | NAME | TARGET PORT | URL |
|----------------------|---------------------------|--------------|-----|
| default | kubernetes | No node port | |
| default | mysql | 3306 | |
| kube-system | kube-dns | No node port | |
| kubernetes-dashboard | dashboard-metrics-scraper | No node port | |
| kubernetes-dashboard | kubernetes-dashboard | No node port | |
|----------------------|---------------------------|--------------|-----|
如果我尝试
minikube service mysql --url
它会给我:
❌ 由于 SVC_UNREACHABLE 退出:服务不可用:找不到 mysql 服务的正在运行的 pod
不完全确定在这里做什么;
服务存在并不意味着部署成功。它表示 pod 没有为该服务运行。您的服务希望找到提供
app: mysql
的 Pod,而您的部署将部署 app: database
。由于您可能没有任何带有标签 app: mysql
的部署,因此没有任何内容提供服务。
修复标签以匹配。