У меня есть простой контейнер в реестре контейнеров Google, который в основном выполняет несколько функций и выполняет двоичный файл, который является сервером на основе go, вот содержимое DockerFile:
FROM debian:stable
WORKDIR /workspace/
COPY key.json .
COPY bin/user-creds.
EXPOSE 1108
ENV GOOGLE_APPLICATION_CREDENTIALS /workspace/key.json
RUN apt-get update \
&& apt-get install -y ca-certificates \
&& chmod +x user-creds
CMD ["./user-creds"]
этот контейнер протестирован локально и отлично работает. Итак, используя облачную оболочку Google, я запустил этот контейнер:
kubectl run user-creds --image=eu.gcr.io/GCLOUD_PROJECT/user-creds:COMMIT_SHA --port=1108
Затем, как сказано в документе, я выставил его на nodeport
kubectl expose deployment user-creds --target-port=1108 --type=NodePort
Затем я создал вход с путем к сервису:
apiVersion: extensions/v1beta1
kind: Ingress
metadata:
name: INGRESS_NAME
annotations:
kubernetes.io/ingress.global-static-ip-name: IP_NAME
spec:
rules:
- http:
paths:
- path: /user/creds/*
backend:
serviceName: user-creds
servicePort: 1108
затем я создал вход:
kubectl create -f INGRESS_NAME.yaml
вход был создан, и я подождал некоторое время, вот подробности входа:
NAME HOSTS ADDRESS PORTS AGE
INGRESS_NAME * IP_ADDRESS 80 38m
но когда я перехожу по фактическому URL-адресу с путем, я получаю ошибку 502:
Когда я перехожу на любой другой путь, я получаю ошибку 404 бэкэнд по умолчанию, но когда я посещаю конкретный / user / creds / путь, я получаю ошибку 502.
Чтобы проверить, не что-то не так с кластером или моим конкретным контейнером, портом или чем-то еще, я попытался выставить контейнер как LoadBalancer, и он отлично работает, Команда:
kubectl expose deployment user-creds --target-port=1108 --port=80 --type=LoadBalancer
детали услуги:
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
kubernetes ClusterIP INT_IP_ADDRESS <none> 443/TCP 1h
user-creds LoadBalancer INT_IP_ADDRESS IP_ADDRESS 80:31618/TCP 1m
Результат: 200 с самым коренным откликом кузова.
На какое-то время застрял на этом, попробовал вход без путей, только пользовательские кредиты в качестве бэкэнда, но все еще имеет ту же ошибку.
Любая помощь или предложение будут оценены, спасибо :)