针对 mysql 的 Kubernetes 部署

问题描述 投票:0回答:1

我正在尝试使用 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

不完全确定在这里做什么;

  1. 为什么它不提供我外部IP 1.2.4.8
  2. 为什么节点端口不显示?
  3. 当服务似乎出现在列表中时,为什么 --url 不起作用?
docker kubernetes minikube
1个回答
0
投票

服务存在并不意味着部署成功。它表示 pod 没有为该服务运行。您的服务希望找到提供

app: mysql
的 Pod,而您的部署将部署
app: database
。由于您可能没有任何带有标签
app: mysql
的部署,因此没有任何内容提供服务。

修复标签以匹配。

© www.soinside.com 2019 - 2024. All rights reserved.