Я настроил кластер Kubernetes следующим образом:
В любом случае, после того, как я закончил настройку, интерфейсное приложение (например, Vue.js) не загружало никаких стилей, только чистый HTML + JS. Открыв вкладку «Сеть» в Firefox, я увидел ошибку «502» в файле CSS.
Просто для контекста это мой Dockerfile Vue.js:
FROM node:lts-alpine
RUN npm install http-server -g
WORKDIR /app
# copy both 'package.json' and 'package-lock.json' (if available)
COPY package*.json ./
# install project dependencies
RUN npm install
# copy project files and folders to the current working directory (i.e. 'app' folder)
COPY . .
RUN npm run build
EXPOSE 8000
CMD [ "http-server", "dist", "-c-1", "-p", "8000" ]
А вот журнал контроллера Nginx (из kubectl logs [nginx-controller-pod]
): https://pastebin.com/tBfPXJns (не смог разместить это здесь, потому что это предположительно спам).
В большинстве случаев только запросы CSS и .png возвращают значение 502, в то время как все запросы JS достигают внешнего сервера.
Мой вход:
apiVersion: extensions/v1beta1
kind: Ingress
metadata:
name: ingress-nginx
annotations:
kubernetes.io/tls-acme: "true"
kubernetes.io/ingress.class: "nginx"
nginx.ingress.kubernetes.io/proxy-body-size: 200m
nginx.ingress.kubernetes.io/rewrite-target: /
nginx.ingress.kubernetes.io/server-snippet: |
add_header 'Access-Control-Expose-Headers' 'access-token,expiry,token-type,uid,client,Access-Token,Expiry,Token-Type,Uid,Client';
spec:
tls:
- hosts:
~all-hosts~
secretName: birthplace-ssl
rules:
- host: api.example.com.br
http:
paths:
- path: /
backend:
serviceName: example-backend-service
servicePort: 9292
- host: example.com.br
http: &default
paths:
- path: /
backend:
serviceName: example-frontend-service
servicePort: 8000
- host: painel.example.com
http: *default
- host: admin.example.com
http: *default
Мое развертывание YAML правильно настроено для обеих служб (то есть с использованием портов 8000 и 9292)
Как ни странно, Я могу получить доступ к любому из этих ресурсов из обычного (внешнего) запроса GET.
P.S. У журнала ...
10.24.0.40 - это IP-адрес кластера http-backend по умолчанию.
10.24.1.3 - это IP моего веб-приложения.