Usar Kubernetes en Azure Container Service (aunque no el nuevo AKS).

Estoy implementando un front-end como este:

apiVersion: apps/v1beta1
kind: Deployment
metadata:
  name: frontend-deployment
spec:
  selector:
    matchLabels:
      app: frontend
  replicas: 2
  template:
    metadata:
      labels:
        app: frontend
    spec:
      containers:
      - name: frontend
        image: etc/etc
        imagePullPolicy: IfNotPresent
        ports:
        - containerPort: 3000
---
apiVersion: v1
kind: Service
metadata:
  name: frontend
spec:
  type: LoadBalancer
  ports:
  - port: 80
    targetPort: 3000
  selector:
    app: frontend

Puedo ver que se inició correctamente desde los registros.

Desde kubectl get services puedo ver que se le ha asignado una IP externa. Pero cuando intento acceder a eso a través de HTTP, simplemente se cuelga.

También puedo ver en el Portal de Azure que se creó Azure Load Balancer y que apunta a la IP externa y al grupo de backend correctos.

¿Alguien puede decirme si de alguna manera arruiné las asignaciones de puertos en la definición de pod?

--

Actualización: de alguna manera comenzó a funcionar por sí solo (o parecía). Pero cuando traté de volver a crearlo como un servicio en lugar de una implementación, dejó de funcionar

Aquí está mi servicio:

Esta es mi configuración:

apiVersion: v1
kind: Service
metadata:
  creationTimestamp: null
  name: meteor
spec:
  externalTrafficPolicy: Cluster
  ports:
  - port: 80
    protocol: TCP
    targetPort: http-server
  selector:
    app: frontend
  sessionAffinity: ClientIP
  type: LoadBalancer

Crea la IP externa para el equilibrador de carga y puedo ver que coincide correctamente con los pods. pero obtengo un tiempo de espera cuando intento conectarme a la IP externa. Mientras tanto, el equilibrador de carga que se creó como parte de la implementación sigue funcionando bien.

2
hexsprite 13 nov. 2017 a las 06:50

2 respuestas

La mejor respuesta

Parece que el problema fue una especificación incorrecta del targetPort. Ajustarlo al valor correcto y reemplazar la definición de Servicio resolvió el problema.

1
hexsprite 14 nov. 2017 a las 07:09

¿Sabe cómo cambiar el tamaño de la máquina virtual del agente en una implementación de ACS existente?

Podemos cambiar el agente de k8s a través de Azure Portal, el agente en Azure es una VM, debemos cambiar el tamaño de la VM:

enter image description here

enter image description here

Espero que esto ayude.

1
Jason Ye 14 nov. 2017 a las 02:03