es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

K8s – Traefik no dispone de puerto disponible después de la actualización

Hola, he implementado Traefik sobre Helm3 en microk8s con estos valores:

deployment: 
  enabled: true

hostNetwork: true
service: 
  type: NodePort 
  ports: 
    web:
      port: 80 
      nodePort: 30183 
      targetPort: 80 
      redirectTo: websecure 
    websecure: 
      port: 443 
      nodePort: null

ingressRoute: 
  dashboard: 
    enabled: false

additionalArguments: 
  - --entryPoints.web.address=:8080/tcp 
  - --entryPoints.websecure.address=:8443/tcp 
  - --api=true 
  - --api.insecure=true 
  - --api.dashboard=true 
  - --providers.kubernetesingress=true 
  - --providers.kubernetescrd=true 
  - --providers.kubernetesingress.ingressclass=traefik 
  - --serversTransport.insecureSkipVerify=true 
  - --certificatesresolvers.le.acme.storage=/data/acme.json 
  - --certificatesresolvers.le.acme.email=email@example.com 
  - --certificatesresolvers.le.acme.httpchallenge.entrypoint=web

securityContext: 
  capabilities: 
    drop: [ALL]  
    add: [NETBINDSERVICE] 
  readOnlyRootFilesystem: true 
  runAsGroup: 0 
  runAsNonRoot: false 
  runAsUser: 0 

Luego actualicé Traefik con la configuración adicional en values.yml:

volumes: 
  - mountPath: /etc/traefik 
    name: traefik-config 
    type: configMap

Pero Traefik no puede iniciarse porque no hay 0/1 nodos disponibles: 1 nodo(s) no tiene puertos libres para los puertos de los pods solicitados. Desinstalar e instalar de nuevo no ha resuelto el problema.

—— EDITAR

Después de agregar un nuevo nodo, Traefik tiene un nuevo error: 0/2 nodos están disponibles: 1 nodo(s) no tiene puertos libres para los puertos del pod solicitados, 1 nodo(s) tenía una tolerancia no alcanzable {node.kubernetes.io/unreachable: }.

Tags:  , ,

Answer

  1. Avatar for davy.ai

    Problema

    El error indica que Traefik no puede iniciarse debido a la falta de puertos disponibles para los puertos de pod solicitados. Desinstalar y reinstalar la aplicación no resolvió el problema, y agregar un nuevo nodo resultó en un nuevo mensaje de error que indicaba que uno de los nodos tenía una restricción (“taint”) que el pod no toleraba.

    Solución

    Existen algunos pasos que puedes seguir para resolver este problema:

    1. Verifica los puertos disponibles en el nodo y asegúrate de que los puertos especificados en el archivo de configuración no estén siendo utilizados. Puedes usar el comando netstat para verificar los puertos abiertos.
    2. Verifica si alguna otra aplicación está utilizando el mismo puerto de nodo que se especifica en el archivo de configuración.

    3. Verifica si tus nodos están funcionando en un proveedor de servicios en la nube y si el cortafuegos está configurado correctamente. A veces, el cortafuegos del proveedor de servicios en la nube puede bloquear los puertos solicitados.

    4. Verifica si los nodos tienen suficientes recursos, como memoria y CPU, para ejecutar Traefik.

    5. Verifica si los nodos tienen las configuraciones requeridas de DNS, red y almacenamiento.

    6. Asegúrate de que los pods toleren correctamente cualquier restricción (“taints”) en los nodos.

    7. Verifica que el configMap añadido sea correcto y contenga la configuración requerida para Traefik.

    Una vez que hayas identificado y resuelto el problema subyacente, puedes intentar reinstalar Traefik en tu clúster microk8s con el configMap añadido.

Comments are closed.