Установка nginx - вход для кластера Kubernetes On Premise с CentOS7 - PullRequest
0 голосов
/ 20 февраля 2020

Я не уверен, какой раздел установки подходит для Cluster On-Premise с CentOS7 по ссылке ниже https://kubernetes.github.io/ingress-nginx/deploy/

Я пытался установить с помощью helm диаграмму, но служба создана с типом = LoadBalance, хотя кластер не находится в облаке

мои вопросы:

Helm - это единственный вариант установки Nginx, который не может (или может быть пустым) -металл является правильным в моем случае)?

В случае шлема, какие параметры должны быть переопределены при установке шлема (service.type et c ...)?

спасибо

Ответы [ 4 ]

0 голосов
/ 09 марта 2020

Я нашел способ установить nginx для чистого металла с помощью рулевой диаграммы:

helm install idit- nginx stable / nginx -ingress --namespace kube-system --set controller .service.type = NodePort
- установить controller.image.pullPolicy = IfNotPresent - версия 1.33.1

0 голосов
/ 20 февраля 2020

Используя штурвал, вы можете установить controller.service.type на NodePort. Таким образом, для nginx входного контроллера будет создана служба NodePort , и вы можете использовать NodeIP и NodePort для доступа к внутренним службам kubernetes путем создания входного ресурса .

. сказал, что в таблице руля нет конфигурации по умолчанию для работы на голом металле. Так что вам нужно попробовать это несколько раз. В противном случае вы можете использовать стандартный yaml, предоставленный для голый металл , который использует NodePort.

0 голосов
/ 20 февраля 2020

В установках из чистого металла невозможно использовать Ingress по умолчанию, вам необходимо использовать MetalLB.

В Nginx документах показано, как настроить MetalLB , чтобы разрешить вашему голому металлическому кластеру использовать службы LoadBalancer.

MetalLB предоставляет реализацию балансировщика сетевой нагрузки для кластеров Kubernetes, которые не работают на поддерживаемом облачном провайдере, эффективно позволяя использовать сервисы LoadBalancer в любом кластере.

По сути, установка проста:

kubectl apply -f https://raw.githubusercontent.com/google/metallb/v0.8.3/manifests/metallb.yaml

А затем создайте ConfigMap для настройки: - Отредактируйте диапазон IP-адресов в соответствии с вашей сетью

apiVersion: v1
kind: ConfigMap
metadata:
  namespace: metallb-system
  name: config
data:
  config: |
    address-pools:
    - name: default
      protocol: layer2
      addresses:
      - 192.168.1.240-192.168.1.250 <= EDIT IP RANGE

Проверьте установку, набрав kubectl get pods -n metallb-system, это ожидаемый результат:

$ kubectl get pods -n metallb-system
NAME                          READY   STATUS    RESTARTS   AGE
controller-65895b47d4-6wzfr   1/1     Running   0          9d
speaker-v52xj                 1/1     Running   0          9d

После MetalLB и сконфигурированный может установить Nginx Входные данные после nginx документов :

kubectl apply -f https://raw.githubusercontent.com/kubernetes/ingress-nginx/nginx-0.29.0/deploy/static/mandatory.yaml

А затем:

kubectl apply -f https://raw.githubusercontent.com/kubernetes/ingress-nginx/nginx-0.29.0/deploy/static/provider/baremetal/service-nodeport.yaml

Если вы предпочитаете, вы можете использовать Шлем :

helm install my-nginx stable/nginx-ingress

Если т В кластере kubernetes включен RBA C, затем выполните:

helm install my-nginx stable/nginx-ingress --set rbac.create=true

Если вы используете Helm 2 , то укажите имя выпуска с помощью --name flag

helm install stable/nginx-ingress --name my-nginx

или

helm install stable/nginx-ingress --name my-nginx --set rbac.create=true

Определить установленную версию:

POD_NAME=$(kubectl get pods -l app.kubernetes.io/name=ingress-nginx -o jsonpath='{.items[0].metadata.name}') kubectl exec -it $POD_NAME -- /nginx-ingress-controller --version

Ссылки:

https://kubernetes.github.io/ingress-nginx/deploy/

https://metallb.universe.tf/

0 голосов
/ 20 февраля 2020

Если вы хотите использовать Type=LoadBalancer, то я рекомендую установить METALLB .

MetalLB - это реализация балансировки нагрузки для голых металлических кластеров Kubernetes, использующая стандартные протоколы маршрутизации.

Почему?

Kubernetes не предлагает реализацию сетевых балансировщиков нагрузки (сервисов типа LoadBalancer) для голых металлических кластеров. Все реализации Network LB, которые поставляются с Kubernetes, представляют собой связующий код, который обращается к различным платформам IaaS (GCP, AWS, Azure ...). Если вы не работаете на поддерживаемой платформе IaaS (GCP, AWS, Azure ...), LoadBalancers будет оставаться в состоянии «ожидание» неопределенно долго при создании. инструменты для переноса трафика пользователей c в их кластеры, сервисы «NodePort» и «externalIPs». Оба эти варианта имеют существенные недостатки для производственного использования, что делает кластеры с голыми металлами вторым классом граждан в экосистеме Kubernetes.

MetalLB стремится исправить этот дисбаланс, предлагая реализацию Network LB, которая интегрируется со стандартным сетевым оборудованием, поэтому что внешние сервисы на голых металлических кластерах также «просто работают» в максимально возможной степени.

Руководство по установке здесь

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