#nginx #kubernetes #kubernetes-helm #helm3
Вопрос:
У меня есть приложение, которое обслуживает статический контент с помощью веб-сервера nginx, вот как nginx.conf
выглядит фактический файл
upstream app_api {
server web:8000;
}
server {
listen 80;
client_max_body_size 100M;
location / {
proxy_pass http://chp_api;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Host $host;
proxy_redirect off;
proxy_read_timeout 3600;
}
location /staticfiles/ {
alias /home/chp_api/web/staticfiles/;
}
}
Для того, чтобы преобразовать это в диаграмму управления и запустить nginx как отдельный модуль в пространстве имен приложений. Я следовал этому кодексу.
Вот мое nginx-config.yaml
досье
{{- if .Values.nginx.enabled -}}
apiVersion: v1
kind: ConfigMap
metadata:
name: {{ include "app.fullname" . }}-nginxconfig
labels:
app.kubernetes.io/name: {{ include "app.fullname" . }}
app.kubernetes.io/instance: {{ .Release.Name }}
app.kubernetes.io/managed-by: {{ .Release.Service }}
data:
nginx.conf: |-
{{- if .Values.nginx.config.default }}
upstream app_api {
server web:8000;
}
server {
listen 80;
# set max upload size
client_max_body_size 100M;
location / {
proxy_pass http://app_api;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Host $host;
proxy_redirect off;
proxy_read_timeout 3600;
}
location /staticfiles/ {
alias /home/app_api/web/staticfiles/;
}
}
{{- else }}
{{ .Values.nginx.config.custom | indent 4 }}
{{- end }}
{{- end }}
Ценности.файл yaml для nginx выглядит так
nginx:
enabled: false
image:
repository: nginx
tag: alpine
pullPolicy: IfNotPresent
config:
default: true
resources: {}
Но я не вижу, чтобы создавался отдельный модуль для веб-сервера nginx, за исключением модуля для приложения. Могу ли я, пожалуйста, знать, что я делаю не так, я новичок в kubernetes и диаграмме руля.
Комментарии:
1. глядя на приведенные выше манифесты, кажется, что вы развертываете только карту конфигурации, чтобы развернуть веб-сервер nginx в качестве модуля, вам следует развернуть ресурсы «Модуль» или «Развертывание», в которых используется только что созданная вами карта конфигурации.
2. @saurabh_garg, Могу я, пожалуйста, узнать, как? Или, если вы могли бы поделиться со мной примером, который будет очень полезен, я очень новичок в k8 и helm
3. Вот пример из официальной документации k8s kubernetes.io/docs/tasks/configure-pod-container/… Если вы новичок в k8, то я бы посоветовал разобраться в ресурсах и их использовании в k8s, прежде чем двигаться дальше. Хорошим местом для начала обучения и практики является kubernetes.io/docs/home
4. Значения , которые вы показываете, также заданы
nginx: { enabled: false }
, поэтому условие вокруг всей отображаемой вами карты конфигурации завершится ошибкой, и карта конфигурации не будет сгенерирована. Как указывает @saurabh_garg, вам также потребуется развертывание для фактического запуска сервера Nginx (возможно, на основе пользовательского образа, включающего файлы, которые вы обслуживаете).5. Привет @merilstack. Есть какие-нибудь новости?
Ответ №1:
Учитывая, что вы новичок в k8s и Helm, и предоставленное репозиторий не объясняет, как создать развертывание шаг за шагом, я бы предложил взглянуть на официальную документацию, где вы можете узнать, как развернуть простое развертывание nginx и управлять им дальше.