Тайм-аут соединения с Kubernetes - PullRequest
1 голос
/ 18 июня 2019

Я развернул небольшое приложение, используя следующий yaml.

apiVersion: apps/v1
kind: Deployment
metadata:
    name: simpledotnetapi-deployment
spec:
    replicas: 1
    selector:
        matchLabels:
            app: simpledotnetapi-pod
    template:
        metadata:
            labels:
                app: simpledotnetapi-pod
        spec:
            imagePullSecrets:
              - name: kimagereadersecret
            containers:
              - name: simpledotnetapi
                image: docker.io/coreyperkins/simpledotnetapi:latest
                ports:
                  - containerPort: 5000
---
apiVersion: v1
kind: Service
metadata:
    name: simpledotnetapi-service
spec:
    type: LoadBalancer
    ports:
    - port: 80
      targetPort: 5000
      nodePort: 30008
    selector:
       app: simpledotnetapi-pod
       type: front-end

На вкладке «Сервисы» в панели управления K8 отображается следующее:

Name: simpledotnetapi-service
Cluster IP: 10.0.133.156
Internal Endpoints:
simpledotnetapi-service:80 TCP
simpledotnetapi-service:30008 TCP
External Endpoints:
13.77.76.204:80

- вывод kubectl.exe описывает svc simpledotnetapi-service

λ kubectl.exe describe svc simpledotnetapi-service
Name:                     simpledotnetapi-service
Namespace:                default
Labels:                   <none>
Annotations:              kubectl.kubernetes.io/last-applied-configuration={"apiVersion":"v1","kind":"Service","metadata":{"annotations":{},"name":"simpledotnetapi-service","namespace":"default"},"spec":{"ports":[{"nodePort":3...
Selector:                 app=simpledotnetapi-pod,type=front-end
Type:                     LoadBalancer
IP:                       10.0.133.156
LoadBalancer Ingress:     13.77.76.204
Port:                     <unset>  80/TCP
TargetPort:               5000/TCP
NodePort:                 <unset>  30008/TCP
Endpoints:                <none>
Session Affinity:         None
External Traffic Policy:  Cluster
Events:
  Type    Reason                Age               From                Message
  ----    ------                ----              ----                -------
  Normal  EnsuringLoadBalancer  33m (x4 over 2h)  service-controller  Ensuring load balancer
  Normal  EnsuredLoadBalancer   33m (x4 over 2h)  service-controller  Ensured load balancer

Когда я подхожу к модулю, я вижу, что мой док-контейнер работает нормально, на порту 5000, как указано в инструкции. Однако, когда я перехожу на http://13.77.76.204/api/values, я должен увидеть возвращенный массив, но вместо этого время ожидания соединения истекло (ERR_CONNECTION_TIMED_OUT в Chrome). Я протестировал этот контейнер Docker локально, и он работает просто отлично. Я предполагаю, что я испортил «containerPort» в спецификации модуля (в разделе «Развертывание»), но я уверен, что контейнер жив на порту 5000. Возможно, мне не хватает некоторых битов конфигурации? Однако, просматривая примеры и документацию, я не смог выяснить, почему не устанавливается соединение с модулем, но я не вижу никакой активности в журналах модулей кроме первоначального запуска приложения.

1 Ответ

2 голосов
/ 18 июня 2019

В ваших определениях pod / service есть несоответствия меток / селекторов.

Вы используете app: simpledotnetapi-pod для шаблона pod и app: simpledotnetapi в качестве селектора в определении сервиса.Отредактируйте один из них, чтобы он соответствовал.

Кроме того, ярлык type: front-end не существует в вашем шаблоне модуля.Вам нужно добавить его или, возможно, удалить его из селекторов службы.

После этого в вашем списке конечных точек должны появиться записи для вашего модуля, когда он будет готов.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...