Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
Next revisionBoth sides next revision
linux_faq:kubernetes_using_single_node_as_master_and_worker [2021/03/28 08:31] – [Установка сервера метрик kubernetes] adminlinux_faq:kubernetes_using_single_node_as_master_and_worker [2021/07/14 10:08] – [Cert manager] admin
Line 124: Line 124:
 https://habr.com/ru/company/southbridge/blog/443110/ \\ https://habr.com/ru/company/southbridge/blog/443110/ \\
 https://metallb.universe.tf/installation/ \\ https://metallb.universe.tf/installation/ \\
-  kubectl create ns metallb-system +  helm repo add metallb https://metallb.github.io/metallb 
-  helm install --name metallb stable/metallb --namespace metallb-system +  helm repo update 
-При установке с помощью **helm** конфигурация хранится в **ConfigMap** с именем **metallb-config**, который лежит в том же неймспейсе куда установлен **metallb** (в данном случае - **metallb-system**). +  kubectl create ns metallb-system  
-<code>apiVersion: v1 +  helm upgrade --install -metallb-system metallb metallb/metallb 
-kind: ConfigMap +    --set configInline.address-pools[0].name="default" \ 
-metadata: +    --set configInline.address-pools[0].protocol="layer2" \ 
-  namespace: metallb-system +    --set configInline.address-pools[0].addresses[0]="192.168.77.160-192.168.77.189"
-  name: metallb-config +
-data: +
-  config: | +
-    address-pools: +
-    - name: default +
-      protocol: layer2 +
-      addresses+
-      - 192.168.77.160-192.168.77.189 +
-</code>+
 ==== Апгрейдим metallb ==== ==== Апгрейдим metallb ====
   helm repo update   helm repo update
-  helm upgrade metallb stable/metallb --namespace metallb-system +  helm upgrade -n metallb-system metallb metallb/metallb --reuse-values
 ===== Ingress-controller ===== ===== Ingress-controller =====
 https://docs.cert-manager.io/en/latest/tutorials/acme/quick-start/# \\ https://docs.cert-manager.io/en/latest/tutorials/acme/quick-start/# \\
 Либо тоже самое можно сделать с помощью helm-чарта: Либо тоже самое можно сделать с помощью helm-чарта:
   kubectl create ns ingress   kubectl create ns ingress
 +  helm repo add ingress-nginx https://kubernetes.github.io/ingress-nginx
 +  helm repo update
 +
   #helm install stable/nginx-ingress --name http-https --namespace ingress   #helm install stable/nginx-ingress --name http-https --namespace ingress
-  helm install stable/nginx-ingress --name http-https --namespace ingress --set controller.service.type=LoadBalancer,controller.service.externalTrafficPolicy=Local,controller.service.loadBalancerIP=192.168.77.160 \+  helm upgrade --install nginx -n ingress ingress-nginx/ingress-nginx \ 
 +  --set controller.service.type=LoadBalancer,controller.service.externalTrafficPolicy=Local,controller.service.loadBalancerIP=192.168.77.160 \
   --set controller.addHeaders."X-XSS-Protection"="1\;mode=block" \   --set controller.addHeaders."X-XSS-Protection"="1\;mode=block" \
   --set controller.addHeaders."Content-Security-Policy"="default-src 'self'; \   --set controller.addHeaders."Content-Security-Policy"="default-src 'self'; \
Line 160: Line 154:
   --set controller.addHeaders."X-Content-Type-Options"="nosniff"   --set controller.addHeaders."X-Content-Type-Options"="nosniff"
 Ну или без драконовских запретов (заголовки **Content-Security-Policy** влияют на все ресурсы за этим **ingress-controller** и что-то может просто не заработать): Ну или без драконовских запретов (заголовки **Content-Security-Policy** влияют на все ресурсы за этим **ingress-controller** и что-то может просто не заработать):
-  helm upgrade http-https stable/nginx-ingress --set controller.service.type=LoadBalancer \+  helm upgrade --install nginx -ingress ingress-nginx/ingress-nginx \ 
 +  --set controller.service.type=LoadBalancer \
   --set controller.service.externalTrafficPolicy=Local \   --set controller.service.externalTrafficPolicy=Local \
   --set controller.service.loadBalancerIP=192.168.77.160 \   --set controller.service.loadBalancerIP=192.168.77.160 \
Line 168: Line 163:
   --set controller.addHeaders."X-Content-Type-Options"="nosniff"   --set controller.addHeaders."X-Content-Type-Options"="nosniff"
  
-В результате - в неймспейсе **ingress** появится сервис **http-https-nginx-ingress-controller**, у которого будет тип **LoadBalancer** и который получит указанный IP-адрес в локальной сети из диапазона, сконфигурированного для **metallb**. \\+В результате - в неймспейсе **ingress** появится сервис **nginx-ingress-nginx-controller**, у которого будет тип **LoadBalancer** и который получит указанный IP-адрес в локальной сети из диапазона, сконфигурированного для **metallb**. \\
 Теперь можно создавать **ingress**'ы, которые будут смотреть на сервисы внутри кластера и предоставлять к ним доступ. Пользователи будут посылать запросы на **ingress-controller**, а он, в свою очередь, - пересылать их на **ingress**'ы. Теперь можно создавать **ingress**'ы, которые будут смотреть на сервисы внутри кластера и предоставлять к ним доступ. Пользователи будут посылать запросы на **ingress-controller**, а он, в свою очередь, - пересылать их на **ingress**'ы.
  
Line 175: Line 170:
 https://docs.cert-manager.io/en/latest/getting-started/install/kubernetes.html#installing-with-helm \\ https://docs.cert-manager.io/en/latest/getting-started/install/kubernetes.html#installing-with-helm \\
 Устанавливаем: Устанавливаем:
-<code># Install the CustomResourceDefinition resources separately +<code>kubectl create namespace cert-manager
-kubectl apply --validate=false -f https://raw.githubusercontent.com/jetstack/cert-manager/release-0.11/deploy/manifests/00-crds.yaml +
- +
-# Create the namespace for cert-manager +
-kubectl create namespace cert-manager +
- +
-# Add the Jetstack Helm repository+
 helm repo add jetstack https://charts.jetstack.io helm repo add jetstack https://charts.jetstack.io
- 
-# Update your local Helm chart repository cache 
 helm repo update helm repo update
  
-# Install the cert-manager Helm chart +helm upgrade --install \ 
-helm install \ +  cert-manager jetstack/cert-manager \
-  --name cert-manager \+
   --namespace cert-manager \   --namespace cert-manager \
-  --version v0.11.0 \ +  --create-namespace \ 
-  jetstack/cert-manager+  --version v1.4.0 \ 
 +  --set installCRDs=true
 </code> </code>
 https://docs.cert-manager.io/en/latest/tasks/issuers/index.html \\ https://docs.cert-manager.io/en/latest/tasks/issuers/index.html \\
 Создаем издателя **Let's Encrypt** (ACME Issuer): Создаем издателя **Let's Encrypt** (ACME Issuer):
-<code>apiVersion: cert-manager.io/v1alpha2+<code>kubectl apply -f - << EOF 
 +apiVersion: cert-manager.io/v1
 kind: ClusterIssuer kind: ClusterIssuer
 metadata: metadata:
Line 215: Line 203:
         ingress:         ingress:
           class: nginx           class: nginx
 +EOF
 </code> </code>
 Смотрим на его состояние: Смотрим на его состояние:
Line 229: Line 218:
 ==== Апгрейдим cert-manager ==== ==== Апгрейдим cert-manager ====
   helm repo update   helm repo update
-  helm upgrade --namespace cert-manager cert-manager jetstack/cert-manager+  helm upgrade --namespace cert-manager cert-manager jetstack/cert-manager --reuse-values
 ===== Ingress, Cert-Manager и сертификаты Let's Encrypt ===== ===== Ingress, Cert-Manager и сертификаты Let's Encrypt =====
 <del>https://docs.cert-manager.io/en/latest/getting-started/install/kubernetes.html</del>\\ <del>https://docs.cert-manager.io/en/latest/getting-started/install/kubernetes.html</del>\\
  • linux_faq/kubernetes_using_single_node_as_master_and_worker.txt
  • Last modified: 2024/04/22 12:38
  • by admin