SSL в Кубернетес с Nginx Angular 6 - PullRequest
0 голосов
/ 25 ноября 2018

У меня есть приложение angular (6), которое работает на Nginx и развернуто в Kubernetes.Вот мои конфиги:

Вот мой файл докера:

FROM node:10-alpine as builder

COPY package.json ./

RUN yarn install && mkdir /myproject && mv ./node_modules ./myproject

WORKDIR /myproject

COPY . .

RUN yarn ng build

FROM nginx:1.15-alpine

COPY ./server.conf /etc/nginx/conf.d/default.conf

## Remove default nginx website
RUN rm -rf /usr/share/nginx/html/*

COPY --from=builder /myproject/dist /usr/share/nginx/html

CMD ["nginx", "-g", "daemon off;"]

И мои конфиги nginx следующие:

server {
    listen 80;
    server_name mywebiste.com www.mywebiste.com;
    return 301 https://$host$request_uri;
}
server {
    listen 443 ssl;
    server_name mywebiste.com www.mywebiste.com;

    ssl_certificate /etc/letsencrypt/live/mywebiste.com/fullchain.pem;
    ssl_certificate_key /etc/letsencrypt/live/mywebiste.com/privkey.pem;

    ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
    add_header Strict-Transport-Security max-age=15768000;
    root /usr/share/nginx/html/myproject;
    index.html;
    server_name localhost;
    location / {
    try_files $uri $uri/ =404;
  }
}

В этом подходе я вроде какчтобы создать сертификаты на моем локальном компьютере, а затем скопировать его в кластер kubernetes.

Я не уверен, что есть лучший способ обработки сертификатов SSL здесь.Я провел некоторое исследование, есть что-то, называемое Ingin контроллер Inginx, но я не уверен, как его настроить, так как я тоже создаю сервер nginx.

1 Ответ

0 голосов
/ 25 ноября 2018

Наиболее нативным способом обработки в Kubernetes является с использованием cert-manager, который может обработать создание сертификатов LetsEncrypt для вас.Как вы заметили, некоторые контроллеры Ingress также имеют свои собственные интеграции с LetsEncrypt, которые вы можете использовать.Если вы используете cert-manager, вы должны создать объект Certificate с необходимыми именами хостов, который выдаст сертификат и поместит его в Secret, который вы затем сможете смонтировать в модуль как том.Обработка этого на уровне Ingress часто проще, если вы собираетесь выполнять много из них, хотя с тех пор вы можете настроить все свои серверные службы, не беспокоясь о TLS.

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