Tengo una aplicación Angular ejecutándose en Nginx implementada junto con el servicio de descanso Spring Boot. Cuando lanzo contenedores Docker localmente, todo funciona bien, por lo que mi única suposición es que hay algún problema con la configuración de Kubernetes.
Recibo este error en la consola de Chrome con la dirección IP proporcionada Failed to load resource: net::ERR_CONNECTION_TIMED_OUT Sin embargo, con el nombre DNS obtengo: Failed to load resource: net::ERR_NAME_NOT_RESOLVED
Extrañamente, puedo curvar mi servicio desde radial/busyboxplus:curl pod pero no puedo hacer ping a mi servicio desde mi módulo frontal (no tengo una curvatura en la compilación).
Estoy accediendo al frente a través de la entrada:
apiVersion: extensions/v1beta1 kind: Ingress metadata: name: main-ingress annotations: kubernetes.io/ingress.class: nginx spec: rules: - http: paths: - path: / backend: serviceName: front servicePort: 80Mi interfaz:
apiVersion: apps/v1 kind: Deployment metadata: name: product-adviser-front-deployment labels: app: angular-front version: v1 spec: replicas: 1 selector: matchLabels: name: product-adviser-front-deployment template: metadata: labels: name: product-adviser-front-deployment spec: containers: - name: product-adviser-front-app image: aurrix/seb:product-adviser-front imagePullPolicy: Always ports: - containerPort: 80 env: - name: API_URL value: http://back.default.svc.cluster.local/ readinessProbe: initialDelaySeconds: 30 httpGet: path: /healthz port: 80 livenessProbe: initialDelaySeconds: 30 httpGet: path: /healthz port: 80 restartPolicy: Always --- apiVersion: v1 kind: Service metadata: name: front spec: selector: name: product-adviser-front-deployment ports: - port: 80 type: NodePortMi back-end:
apiVersion: apps/v1 kind: Deployment metadata: name: product-adviser-back-deployment labels: app: backend-service version: v1 spec: replicas: 1 selector: matchLabels: name: product-adviser-back-deployment template: metadata: labels: name: product-adviser-back-deployment spec: containers: - name: product-adviser-back-deployment image: aurrix/seb:product-adviser imagePullPolicy: Always ports: - containerPort: 8080 readinessProbe: initialDelaySeconds: 30 httpGet: path: /actuator/health port: 8080 livenessProbe: initialDelaySeconds: 30 httpGet: path: /actuator/health port: 8080 restartPolicy: Always --- apiVersion: v1 kind: Service metadata: name: back spec: selector: name: product-adviser-back-deployment ports: - port: 80 targetPort: 8080Ha establecido el valor: http://back.default.svc.cluster.local/ como env, ¿está llamando a este punto final para el servicio backend desde su aplicación front-end? Si es así, esto no funcionará ya que la aplicación frontend se ejecuta en el navegador y es el navegador el que realizará la llamada a la API. En este caso, deberá agregar otra regla en el ingreso y enrutar las solicitudes al pod de back-end.
También noté que el servicio frontend está configurado en nodePort y desde el ingreso está llamando al servicio directamente. Es posible que desee configurar el servicio en clúster-IP (predeterminado) como el servicio de back-end.