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/07/14 10:08] – [Cert manager] adminlinux_faq:kubernetes_using_single_node_as_master_and_worker [2021/12/19 18:29] – [Ingress-controller] admin
Line 116: Line 116:
 С третьей версией **Helm** ничего в кластер ставить не нужно. Для использования достаточно бинарника и сконфигурированного **context** для доступа к кластеру. С третьей версией **Helm** ничего в кластер ставить не нужно. Для использования достаточно бинарника и сконфигурированного **context** для доступа к кластеру.
  
 +====== Обновление kubernetes ======
 +смотрим какие версии **kubeadm** нам доступны
 +  sudo apt-get update
 +  apt-cache madison kubeadm
 +Разрешаем обновление **kubernetes-cni** и **kubeadm**:
 +  sudo apt-mark unhold kubernetes-cni kubeadm
 +Ставим нужную версию **kubeadm**: 
 +  sudo apt-get install kubeadm=1.20.9-00
 +Проверяем возможность апгрейда:
 +  sudo kubeadm upgrade plan
 +Если у нас хост с **containerd** (без **docker**), то нужно учесть, что **kubeadm** понадобится **docker** для получения **images**. Поэтому временно ставим его:
 +  sudo apt-get install docker.io
 +Обновляем:
 +  sudo kubeadm upgrade apply v1.20.9
 +Разрешаем обновление **kubelet** и **kubectl**
 +  sudo apt-mark unhold kubelet kubectl
 +И обновляем их до нужной версии:
 +  sudo apt-get install -y kubelet=1.20.9-00 kubectl=1.20.9-00
 +Морозим обратно версии пакетов:
 +  sudo apt-mark hold kube*
 +Апгрейдим всю систему:
 +  sudo apt-get update && sudo apt-get upgrade
 ====== Доступ к подам снаружи ====== ====== Доступ к подам снаружи ======
 Для доступа к сервисам, которые предоставляют поды, нужно установить и настроить: Для доступа к сервисам, которые предоставляют поды, нужно установить и настроить:
Line 143: Line 165:
   #helm install stable/nginx-ingress --name http-https --namespace ingress   #helm install stable/nginx-ingress --name http-https --namespace ingress
   helm upgrade --install nginx -n ingress ingress-nginx/ingress-nginx \   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.service.type=LoadBalancer,controller.service.externalTrafficPolicy=Cluster,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 156: Line 178:
   helm upgrade --install nginx -n ingress ingress-nginx/ingress-nginx \   helm upgrade --install nginx -n ingress ingress-nginx/ingress-nginx \
   --set controller.service.type=LoadBalancer \   --set controller.service.type=LoadBalancer \
-  --set controller.service.externalTrafficPolicy=Local \+  --set controller.service.externalTrafficPolicy=Cluster \
   --set controller.service.loadBalancerIP=192.168.77.160 \   --set 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" \
Line 178: Line 200:
   --namespace cert-manager \   --namespace cert-manager \
   --create-namespace \   --create-namespace \
-  --version v1.4.\+  --version v1.5.\
   --set installCRDs=true   --set installCRDs=true
 </code> </code>
Line 194: Line 216:
     # certificates, and issues related to your account.     # certificates, and issues related to your account.
     email: mike@autosys.tk     email: mike@autosys.tk
-    server: https://acme-staging-v02.api.letsencrypt.org/directory+    server: https://acme-v02.api.letsencrypt.org/directory
     privateKeySecretRef:     privateKeySecretRef:
       # Secret resource used to store the account's private key.       # Secret resource used to store the account's private key.
Line 223: Line 245:
 <del>https://docs.bitnami.com/kubernetes/how-to/secure-kubernetes-services-with-ingress-tls-letsencrypt/#step-3-configure-tls-with-let-s-encrypt-certificates-and-cert-manager</del>\\ <del>https://docs.bitnami.com/kubernetes/how-to/secure-kubernetes-services-with-ingress-tls-letsencrypt/#step-3-configure-tls-with-let-s-encrypt-certificates-and-cert-manager</del>\\
 https://docs.cert-manager.io/en/latest/tutorials/acme/quick-start/#\\ https://docs.cert-manager.io/en/latest/tutorials/acme/quick-start/#\\
 +https://cert-manager.io/docs/installation/helm/ \\
 Итак, у нас установлен **MetalLB**, **Ingress Controller** и **CertManager**. \\ Итак, у нас установлен **MetalLB**, **Ingress Controller** и **CertManager**. \\
 В результате, сервис **Ingress Controller** должен получить адрес в локальной (или нелокальной сети) из диапазона, прописанного в конфигурации **MetalLB**: В результате, сервис **Ingress Controller** должен получить адрес в локальной (или нелокальной сети) из диапазона, прописанного в конфигурации **MetalLB**:
Line 255: Line 278:
 В результате, HTTP-запросы на **IP**-адрес **Ingress**-контроллера будут перенаправлены на сервис web-морды AWX. \\ В результате, HTTP-запросы на **IP**-адрес **Ingress**-контроллера будут перенаправлены на сервис web-морды AWX. \\
 \\ \\
-Теперь нужно сконфигурировать **ACME Issuer** - это сущность, которая будет запрашивать сертификаты по протоколу **ACME** у серверов **Let's Encrypt**: +Теперь нужно сконфигурировать **ACME Issuer** - это сущность, которая будет запрашивать сертификаты по протоколу **ACME** у серверов **Let's Encrypt**: \\ 
-<code>apiVersion: cert-manager.io/v1alpha2+https://cert-manager.io/docs/configuration/acme/ 
 +<code> 
 +kubectl apply -f - << EOF 
 +apiVersion: cert-manager.io/v1
 kind: ClusterIssuer kind: ClusterIssuer
 metadata: metadata:
   name: letsencrypt   name: letsencrypt
-  namespace: cert-manager 
 spec: spec:
   acme:   acme:
Line 266: Line 291:
     # Let's Encrypt will use this to contact you about expiring     # Let's Encrypt will use this to contact you about expiring
     # certificates, and issues related to your account.     # certificates, and issues related to your account.
-    email: mike@autosys.tk +    email: m.usik@sdventures.com 
-    server: https://acme-v02.api.letsencrypt.org/directory+    server: https://acme-staging-v02.api.letsencrypt.org/directory
     privateKeySecretRef:     privateKeySecretRef:
-      # Secret resource used to store the account's private key. +      # Secret resource that will be used to store the account's private key. 
-      name: letsencrypt-cert-issuer-account-key+      name: letsencrypt-issuer-account-key
     # Add a single challenge solver, HTTP01 using nginx     # Add a single challenge solver, HTTP01 using nginx
     solvers:     solvers:
Line 276: Line 301:
         ingress:         ingress:
           class: nginx           class: nginx
 +EOF
 </code> </code>
 После того, как создан **Issuer** (в данном случае - **ClusterIssuer** с именем **letsencrypt**) можно добавить в манифест ингресса информацию о нем. Редактируем ресурс **Ingress** и приводим секцию **annotations** к виду: После того, как создан **Issuer** (в данном случае - **ClusterIssuer** с именем **letsencrypt**) можно добавить в манифест ингресса информацию о нем. Редактируем ресурс **Ingress** и приводим секцию **annotations** к виду:
  • linux_faq/kubernetes_using_single_node_as_master_and_worker.txt
  • Last modified: 2024/04/22 12:38
  • by admin