AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • Início
  • system&network
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • Início
  • system&network
    • Recentes
    • Highest score
    • tags
  • Ubuntu
    • Recentes
    • Highest score
    • tags
  • Unix
    • Recentes
    • tags
  • DBA
    • Recentes
    • tags
  • Computer
    • Recentes
    • tags
  • Coding
    • Recentes
    • tags
Início / server / Perguntas / 986553
Accepted
roy
roy
Asked: 2019-10-03 11:47:13 +0800 CST2019-10-03 11:47:13 +0800 CST 2019-10-03 11:47:13 +0800 CST

O pod do Kubernetes desvinculou PersistentVolumeClaims imediatos (eks)

  • 772

Eu tenho o seguinte StorageClassdefinido para aws ekscluster (3 nós)

kind: StorageClass
apiVersion: storage.k8s.io/v1
metadata:
  name: aws-gp2
  annotations:
    storageclass.kubernetes.io/is-default-class: "true"
provisioner: kubernetes.io/aws-ebs
parameters:
  type: gp2
  zones: us-west-2a, us-west-2b, us-west-2c, us-west-2d
  fsType: ext4
reclaimPolicy: Retain
allowVolumeExpansion: true

e ter eksnós em execução em us-west-2a, us-west-2b, us-west-2czonas.

Quando estou tentando implantar mysqlcom volume persistente dinâmico

---

kind: PersistentVolumeClaim
apiVersion: v1
metadata:
  name: mysql-pv-claim
  namespace: default
  labels:
    app: mysql
    env: prod
spec:
  storageClassName: aws-gp2
  accessModes:
    - ReadWriteOnce
  resources:
    requests:
      storage: 20Gi

---

kind: Deployment
apiVersion: apps/v1 # for versions before 1.9.0 use apps/v1beta2
metadata:
  name: mysql
  namespace: default
  labels:
    app: mysql
    env: prod
spec:
  selector:
    matchLabels:
      app: mysql
  strategy:
    type: Recreate
  template:
    metadata:
      labels:
        app: mysql
    spec:
      containers:
      - image: mysql:5.6
        name: mysql
        env:
        - name: MYSQL_ROOT_PASSWORD
          valueFrom:
            secretKeyRef:
              name: mysql-secret
              key: root-password
        ports:
        - containerPort: 3306
          name: mysql
        volumeMounts:
        - name: mysql-persistent-storage
          mountPath: /var/lib/mysql
      volumes:
      - name: mysql-persistent-storage
        persistentVolumeClaim:
          claimName: mysql-pv-claim

Mas o pod não vai além do Pendingstatus.

O log de eventos do pod diz:

Events:
  Type     Reason            Age               From               Message
  ----     ------            ----              ----               -------
  Warning  FailedScheduling  8s (x7 over 20s)  default-scheduler  pod has unbound immediate PersistentVolumeClaims (repeated 3 times)
  Warning  FailedScheduling  8s (x2 over 8s)   default-scheduler  0/3 nodes are available: 3 node(s) had volume node affinity conflict.

Não estou entendendo por que o pod não consegue montar o PVC.

Eu adicionei mais 1 nó ao cluster eks, para que todos os 4 nós possam abranger 4 az e, em seguida, reimplante mysqle funcionou. Ainda não sei qual foi o verdadeiro problema.

kubernetes
  • 1 1 respostas
  • 13458 Views

1 respostas

  • Voted
  1. Best Answer
    Vit
    2021-02-23T02:26:15+08:002021-02-23T02:26:15+08:00

    Sim, eu sei que isso já foi discutido milhões de vezes e estou respondendo 2 anos depois da sua pergunta. Muito provavelmente você já esqueceu essa pergunta, mas a comunidade lembra de tudo.

    Resposta da comunidade para as próximas gerações...

    Tudo já foi discutido em uma pergunta de pilha semelhante Aviso de pod do Kubernetes: 1 nó(s) teve conflito de afinidade de nó de volume

    Resposta de @Sownak Roy : Completo, sem minhas modificações. Eles simplesmente não precisam de lá ..

    O erro "conflito de afinidade do nó de volume" ocorre quando o volume persistente afirma que o pod está sendo agendado em zonas diferentes, em vez de em uma zona e, portanto, o pod real não pôde ser agendado porque não pode se conectar ao volume de outra zona. Para verificar isso, você pode ver os detalhes de todos os Volumes Persistentes. Para verificar isso, primeiro pegue seus PVCs:

    $ kubectl get pvc -n <namespace>
    

    Em seguida, obtenha os detalhes dos volumes persistentes (não das reivindicações de volume)

    $  kubectl get pv
    

    Encontre os PVs que correspondem aos seus PVCs e descreva-os

    $  kubectl describe pv <pv1> <pv2>
    

    Você pode verificar o Source.VolumeID para cada um dos PV, provavelmente serão zonas de disponibilidade diferentes, e assim seu pod dá o erro de afinidade. Para corrigir isso, crie uma classe de armazenamento para uma única zona e use essa classe de armazenamento em seu PVC.

    kind: StorageClass
    apiVersion: storage.k8s.io/v1
    metadata:
      name: region1storageclass
    provisioner: kubernetes.io/aws-ebs
    parameters:
      type: gp2
      encrypted: "true" # if encryption required
    volumeBindingMode: WaitForFirstConsumer
    allowedTopologies:
    - matchLabelExpressions:
      - key: failure-domain.beta.kubernetes.io/zone
        values:
        - eu-west-2b # this is the availability zone, will depend on your cloud provider
        # multi-az can be added, but that defeats the purpose in our scenario
    
    • 2

relate perguntas

  • Não é possível executar o Hyperkube (kubernetes) localmente via Docker

  • Distribuindo a carga de trabalho pelo Kubernetes

  • Tipo de máquina revertida da atualização do Kubernetes

Sidebar

Stats

  • Perguntas 205573
  • respostas 270741
  • best respostas 135370
  • utilizador 68524
  • Highest score
  • respostas
  • Marko Smith

    Você pode passar usuário/passar para autenticação básica HTTP em parâmetros de URL?

    • 5 respostas
  • Marko Smith

    Ping uma porta específica

    • 18 respostas
  • Marko Smith

    Verifique se a porta está aberta ou fechada em um servidor Linux?

    • 7 respostas
  • Marko Smith

    Como automatizar o login SSH com senha?

    • 10 respostas
  • Marko Smith

    Como posso dizer ao Git para Windows onde encontrar minha chave RSA privada?

    • 30 respostas
  • Marko Smith

    Qual é o nome de usuário/senha de superusuário padrão para postgres após uma nova instalação?

    • 5 respostas
  • Marko Smith

    Qual porta o SFTP usa?

    • 6 respostas
  • Marko Smith

    Linha de comando para listar usuários em um grupo do Windows Active Directory?

    • 9 respostas
  • Marko Smith

    O que é um arquivo Pem e como ele difere de outros formatos de arquivo de chave gerada pelo OpenSSL?

    • 3 respostas
  • Marko Smith

    Como determinar se uma variável bash está vazia?

    • 15 respostas
  • Martin Hope
    Davie Ping uma porta específica 2009-10-09 01:57:50 +0800 CST
  • Martin Hope
    kernel O scp pode copiar diretórios recursivamente? 2011-04-29 20:24:45 +0800 CST
  • Martin Hope
    Robert ssh retorna "Proprietário incorreto ou permissões em ~/.ssh/config" 2011-03-30 10:15:48 +0800 CST
  • Martin Hope
    Eonil Como automatizar o login SSH com senha? 2011-03-02 03:07:12 +0800 CST
  • Martin Hope
    gunwin Como lidar com um servidor comprometido? 2011-01-03 13:31:27 +0800 CST
  • Martin Hope
    Tom Feiner Como posso classificar a saída du -h por tamanho 2009-02-26 05:42:42 +0800 CST
  • Martin Hope
    Noah Goodrich O que é um arquivo Pem e como ele difere de outros formatos de arquivo de chave gerada pelo OpenSSL? 2009-05-19 18:24:42 +0800 CST
  • Martin Hope
    Brent Como determinar se uma variável bash está vazia? 2009-05-13 09:54:48 +0800 CST

Hot tag

linux nginx windows networking ubuntu domain-name-system amazon-web-services active-directory apache-2.4 ssh

Explore

  • Início
  • Perguntas
    • Recentes
    • Highest score
  • tag
  • help

Footer

AskOverflow.Dev

About Us

  • About Us
  • Contact Us

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve