无法在 kubernetes 中 运行 mysql statefulset

cant run mysql statefulset in kubernetes

我刚开始学习 kubernetes,正在 katakoda 平台上玩。我为 mysql 创建了一个状态集。这只是一个测试,所以我没有声明任何 pvc 并安装任何卷。它的声明和服务在 yml 中的声明:


---

apiVersion: v1
kind: Service
metadata:
  name: mysql-headless
  labels:
    run: mysql-sts-demo
spec:
  ports:
  - port: 3306
    name: db
  selector:
    run: mysql-sts-demo

---
apiVersion: apps/v1
kind: StatefulSet
metadata:
  name: mysql-sts-demo
spec:
  serviceName: "mysql-headless"
  replicas: 1
  selector:
    matchLabels:
      run: mysql-sts-demo
  template:
    metadata:
      labels:
        run: mysql-sts-demo
    spec:
      containers:
      - name: mysql
        image: mysql:5.7.8
        env:
          - name: MYSQL_ROOT_PASSWORD
            valueFrom:
              secretKeyRef:
                name: mysql-secrets
                key: ROOT_PASSWORD
          - name: MYSQL_DATABASE
            valueFrom:
              secretKeyRef:
                name: mysql-secrets
                key: DBNAME
          - name: MYSQL_USER
            valueFrom:
              secretKeyRef:
                name: mysql-secret
                key: USER
          - name: MYSQL_PASSWORD
            valueFrom:
              secretKeyRef:
                name: mysql-secrets
                key: PASSWORD


它成功创建了这些资源,但是当我输入 kubectl get statefulsets 时,我的 ss 总是显示为未准备好。可能是什么问题?顺便说一句,我需要它与我之前作为部署声明和启动的 spring 宠物诊所应用程序一起使用。

你能粘贴状态集的日志吗 或 kubectl get eventskubectl describe <your stateful-set name>

的输出

现在谈到秘密,你能检查一下你在状态集定义中使用的那些秘密是否已经存在使用 kubectl get secrets