繁体   English   中英

Kops - 无法使用 pvc 绑定到存储类

[英]Kops - unable to bound to storage class using pvc

我正在尝试使用kops部署带有 MySQL 数据库的 WordPress 站点。 当我运行这些 YAML 文件时,PVC 处于pending状态并且不会在 ebs 上创建卷。 我首先认为这是因为存储 YAML 文件中的可用区,但我已经尝试了所有可能的组合但没有运气。

存储类

apiVersion: storage.k8s.io/v1
kind: StorageClass
metadata:
  name: standard
provisioner: kubernetes.io/aws-ebs
parameters:
  type: gp2 
  zone: us-east-2a
  iopsPerGB: "10"
reclaimPolicy: Delete
allowVolumeExpansion: false

持续量声明

apiVersion: v1
kind: PersistentVolumeClaim
metadata:
  name: wp-pv-claim
  labels:
    app: wordpress
spec:
  storageClassName: standard
  accessModes:
    - ReadWriteOnce
  resources:
    requests:
      storage: 5Gi

部署:

apiVersion: apps/v1 
kind: Deployment
metadata:
  name: wordpress
  labels:
    app: wordpress
spec:
  selector:
    matchLabels:
      app: wordpress
      tier: frontend
  strategy:
    type: Recreate
  template:
    metadata:
      labels:
        app: wordpress
        tier: frontend
    spec:
      containers:
      - image: wordpress:4.8-apache
        name: wordpress
        env:
        - name: WORDPRESS_DB_HOST
          value: wordpress-mysql
        - name: WORDPRESS_DB_PASSWORD
          value: 123a
        ports:
        - containerPort: 80
          name: wordpresss
        volumeMounts:
        - name: wordpress-persistent-storage
          mountPath: /var/www/html
      volumes:
      - name: wordpress-persistent-storage
        persistentVolumeClaim:
          claimName: wp-pv-claim

服务:

apiVersion: v1
kind: Service
metadata:
  name: wordpress
  labels:
    app: wordpress
spec:
  selector:
    app: wordpress
    tier: frontend
  type: NodePort
  ports:
    - nodePort: 30007 
      port: 80
      targetPort: 80

我正在使用此命令创建集群:

kops create cluster \
--node-count=1 \
--node-size=t2.micro \
--master-size=t2.small \
--zones=us-east-2a \
--name=${KOPS_CLUSTER_NAME}

正如我在第一条评论中怀疑的那样,您没有足够的资源来运行mysqlwordpress

如果您检查Amazon 实例类型,您会发现t2.nanot2.small资源非常少。

Name    vCPUs   RAM (GiB)   
t2.nano     1   0.5     
t2.small    1   2.0

同样,正如您在上一条评论中提到的:

mysql 已绑定卷,然后 wordpress pod 进入挂起状态,而 mysql pod 是健康的

这是因为集群没有足够的资源来启动 pod。

如果你使用kubectl describe pod <wordpress-pod-name>你会得到类似的输出:

Warning FailedScheduling 4s (x4 over 92s) default-scheduler 0/2 nodes are available: 1 Insufficient cpu, 1 node(s) had taint {node-role.kubernetes.io/master: }, that the pod didn't tolerate.

拥有如此数量资源的集群将无法运行wordpressmysql 请记住,kubernetes 默认 pod 也在运行,要检查哪个,您可以运行kubectl get pods -A

解决方案:

  • 使用具有更多资源的实例t2.large创建新的 kops 集群
  • 将节点添加到您的 kops 集群。 你可以检查这个stackoverflow线程

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM