apiVersion: extensions/v1beta1
kind: Ingress
metadata:
  name: myapp-ingress
  namespace: myapp-system
  annotations:
    kubernetes.io/ingress.class: traefik
    traefik.ingress.kubernetes.io/preserve-host: "true"    
spec:
  rules:
  - host: myapp.test
    http:
      paths:
      - path: /
        backend:
          serviceName: myapp-svc
          servicePort: 80
  tls:
    - secretName: myapp-test-cert
      hosts:
        - myapp.test

С этим входом обычный https не будет работать, но TLS продолжает получать отказ. Все секреты, капсулы и сервисы работают на 100%.

curl https://myapp.test curl: (7) Не удалось подключиться к myapp.test: 443; В соединении отказано

Внутренний сервис:

NAME            TYPE        CLUSTER-IP    EXTERNAL-IP   PORT(S)   AGE
myapp-svc   ClusterIP   10.98.46.75   <none>        80/TCP    3h8m

Стручки работают под управлением Nginx. Ниже приведен конф. Nginx:

user root;
worker_processes auto;
error_log /var/log/nginx/error.log;
pid /run/nginx.pid;
include /usr/share/nginx/modules/*.conf;
events {
    worker_connections 1024;
}
http {
    log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '
                      '$status $body_bytes_sent "$http_referer" '
                      '"$http_user_agent" "$http_x_forwarded_for"';

server {
    listen         80;
    server_name    myapp.test;

    location /static {
        alias /static/;     
    }

    location /media {
        alias /media/;     
        client_max_body_size 200M;
    }    

    location / {
        proxy_pass http://localhost:8000;
        proxy_set_header Host $host;
        proxy_http_version 1.1;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection "upgrade";
        client_body_temp_path /tmp/nginx 1 2;
        client_max_body_size 200M;
    }    
}
    access_log  /var/log/nginx/access.log  main;
    sendfile            on;
    tcp_nopush          on;
    tcp_nodelay         on;
    keepalive_timeout   65;
    types_hash_max_size 2048;
    include             /etc/nginx/mime.types;
    default_type        application/octet-stream;
}

Кто-нибудь видел что-нибудь подобное раньше?

1 ответ1

0

Проблема заключалась в том, что Traefik Ingress Controller не включал порт 443 в набор демонов и спецификацию манифеста службы.

Добавление

 - name: https
   containerPort: 443
   hostPort: 443

В Daemonset spec.spec.containers.ports, а также добавить:

- protocol: TCP
  port: 443
  name: https

К сервисному объекту для сервиса traefik

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .