Я новичок в K8s, и это моя первая попытка попытаться справиться с этим. Я пытаюсь создать базовую Nodejs Экспресс API с помощью этого deployment.yml:Kubernetes - Ingress/Service/LB
apiVersion: extensions/v1beta1
kind: Deployment
metadata:
name: api
spec:
replicas: 1
template:
metadata:
labels:
app: api
spec:
containers:
- image: registry.gitlab.com/<project>/<app>:<TAG>
imagePullPolicy: Always
name: api
env:
- name: PORT
value: "8080"
ports:
- containerPort: 8080
hostPort: 80
livenessProbe:
httpGet:
path: /healthz
port: 8080
initialDelaySeconds: 30
timeoutSeconds: 1
readinessProbe:
httpGet:
path: /healthz
port: 8080
initialDelaySeconds: 30
timeoutSeconds: 1
imagePullSecrets:
- name: registry.gitlab.com
Который развертывается через gitlab-CI. Это работает, и я настроил услугу, чтобы выставить его:
apiVersion: v1
kind: Service
metadata:
name: api-svc
labels:
app: api-svc
spec:
ports:
- port: 80
targetPort: 80
protocol: TCP
name: http
selector:
app: api
type: LoadBalancer
Но я смотрел в попаданию иметь единую точку входа, возможно, несколько сервисов. Я читал через Kubernetes гидов и я прочитал эту Kubernetes Ingress Example и это ingress.yml я создал:
apiVersion: extensions/v1beta1
kind: Ingress
metadata:
name: ingress
spec:
backend:
serviceName: api-svc
servicePort: 80
Но это не сработало, когда я посетил внешний IP-адрес, который был создан из попаданию и Я всего лишь 502 страницы ошибок.
Может ли кто-нибудь указать мне в правильном направлении, что я делаю неправильно или что мне не хватает? Я вижу, что в приведенном выше примере ссылки есть nginx-rc.yml, который я развернул точно так же, как в примере, и который был создан, но ничего не получил от конечной точки. API был доступен из службы внешнего IP, хотя ..
Большое спасибо
У меня была точно такая же проблема с gke на прошлой неделе, и я решил отказаться от нее через некоторое время. После всех руководств к письму это не сработало, и даже с другими из слабины k8s мы не могли понять, что случилось. Теперь я решил просто создать входной балансировщик вручную за пределами кубернетов и указать его на мою службу LoadBalancer. – Tigraine
Что вы использовали для вашего входного балансира нагрузки за пределами Кубернете? Не уверен, что это проблема, потому что вход все еще находится в стадии бета-тестирования, но это странно после их руководств, и он не работает. Вид облегчен тем, что у меня не только проблемы. – mchaffe
Ну, проникновение просто создаст GCE L7 Loadbalancer - вы даже можете посмотреть его в своей Google Cloud Console. Поэтому я решил, что просто сконфигурирую L7 Balancer в консоли и укажу на L3 Balancer, созданный службой LoadBalancer. (Мне нужно в основном для завершения SSL.) – Tigraine