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 07:59] – [Ingress-controller] adminlinux_faq:kubernetes_using_single_node_as_master_and_worker [2021/10/07 10:44] – [Cert manager] 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 124: Line 146:
 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/# \\
Line 180: Line 192:
 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 211: 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 220: Line 225:
         ingress:         ingress:
           class: nginx           class: nginx
 +EOF
 </code> </code>
 Смотрим на его состояние: Смотрим на его состояние:
Line 234: Line 240:
 ==== Апгрейдим 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>\\
 <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**:
  • linux_faq/kubernetes_using_single_node_as_master_and_worker.txt
  • Last modified: 2024/04/22 12:38
  • by admin