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 [2022/03/11 07:59] – [Мониторинг nginx ingess] adminlinux_faq:kubernetes_using_single_node_as_master_and_worker [2022/04/28 11:25] – [Single node Kubernetes setup - Ubuntu 18.04] admin
Line 8: Line 8:
      
   echo 'deb http://apt.kubernetes.io/ kubernetes-xenial main' | sudo tee /etc/apt/sources.list.d/kubernetes.list   echo 'deb http://apt.kubernetes.io/ kubernetes-xenial main' | sudo tee /etc/apt/sources.list.d/kubernetes.list
-  curl -s https://packages.cloud.google.com/apt/doc/apt-key.gpg | sudo apt-key add +  ######### curl -s https://packages.cloud.google.com/apt/doc/apt-key.gpg | sudo apt-key add 
-  +  gpg_key_url="https://packages.cloud.google.com/apt/doc/apt-key.gpg" 
 +  gpg_keyring_path="/etc/apt/trusted.gpg.d/kubernetes.gpg" 
 +  curl -fsSL "${gpg_key_url}" | gpg --dearmor | sudo tee -a ${gpg_keyring_path} 
 + 
 +  cat <<EOF | sudo tee /etc/modules-load.d/containerd.conf 
 +  overlay 
 +  br_netfilter 
 +  EOF 
 + 
 +  sudo modprobe overlay 
 +  sudo modprobe br_netfilter 
 + 
 +  # Setup required sysctl params, these persist across reboots. 
 +  cat <<EOF | sudo tee /etc/sysctl.d/99-kubernetes-cri.conf 
 +  net.bridge.bridge-nf-call-iptables  = 1 
 +  net.ipv4.ip_forward                 = 1 
 +  net.bridge.bridge-nf-call-ip6tables = 1 
 +  EOF 
 + 
 +  # Apply sysctl params without reboot 
 +  sudo sysctl --system 
   sudo apt-get update   sudo apt-get update
-  sudo apt-get install -y docker.io kubeadm kubelet+  #sudo apt-get install -y docker.io kubeadm kubelet 
 +  sudo apt-get install -y containerd kubeadm kubelet
      
-  # Setup Docker daemon. +  sudo mkdir -p /etc/containerd 
-  cat > /etc/docker/daemon.json <<EOF +  containerd config default | sudo tee /etc/containerd/config.toml 
-  +    
-    "exec-opts": ["native.cgroupdriver=systemd"]+  cat << EOF | sudo tee /etc/systemd/system/kubelet.service.d/12-after-docker.conf 
-    "log-driver": "json-file", +  [Unit
-    "log-opts":+  After=containerd.service
-      "max-size": "100m" +
-    }, +
-    "storage-driver": "overlay2" +
-  }+
   EOF   EOF
      
-  sudo mkdir -/etc/systemd/system/docker.service.d+  sudo sed -i 's/SystemdCgroup = false/SystemdCgroup = true//etc/containerd/config.toml 
 +  sudo service containerd restart
      
-  # Enable services and restart docker. 
-  sudo systemctl daemon-reload 
-  sudo systemctl enable docker 
-  sudo systemctl restart docker 
-  sudo systemctl enable kubelet.service 
      
-  sudo usermod -a -G docker $USER 
-   
-  # To ensure that kubelet starts only after docker: 
-  cat << EOF | sudo tee /etc/systemd/system/kubelet.service.d/12-after-docker.conf 
-  [Unit] 
-  After=docker.service 
-  EOF 
-    
   # Kubernetes Cluster Init    # Kubernetes Cluster Init 
-  sudo kubeadm init --pod-network-cidr=10.244.0.0/16+  sudo kubeadm init --cri-socket /run/containerd/containerd.sock --pod-network-cidr=10.244.0.0/16
      
   mkdir -p $HOME/.kube   mkdir -p $HOME/.kube
Line 148: Line 154:
 Проверяем возможность апгрейда: Проверяем возможность апгрейда:
   sudo kubeadm upgrade plan   sudo kubeadm upgrade plan
-Если у нас хост с **containerd** (без **docker**), то нужно учесть, что **kubeadm** понадобится **docker** для получения **images**. Поэтому временно ставим его: +Если у нас хост с **containerd** (без **docker**), то нужно проверить, что параметр **kubeadm.alpha.kubernetes.io/cri-socket** указывает не на **docker-shim**, а на сокет **containerd**. У меня так: 
-  sudo apt-get install docker.io+  kubeadm.alpha.kubernetes.io/cri-socket: /run/containerd/containerd.sock 
 +если этого не сделать - будет ошибка, поскольку **kubeadm** возьмет эту запись и будет пытаться работать через docker, которого нет
 +  error execution phase preflight: docker is required for container runtime: exec: "docker": executable file not found in $PATH
 Обновляем: Обновляем:
   sudo kubeadm upgrade apply v1.20.9   sudo kubeadm upgrade apply v1.20.9
Line 286: Line 294:
   --namespace cert-manager \   --namespace cert-manager \
   --create-namespace \   --create-namespace \
-  --version v1.5.4 +  --set installCRDs=true \ 
-  --set installCRDs=true+  --version v1.5.4
 </code> </code>
 https://docs.cert-manager.io/en/latest/tasks/issuers/index.html \\ https://docs.cert-manager.io/en/latest/tasks/issuers/index.html \\
Line 377: Line 385:
     # 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: m.usik@sdventures.com+    email: mike@autosys.tk
     server: https://acme-staging-v02.api.letsencrypt.org/directory     server: https://acme-staging-v02.api.letsencrypt.org/directory
     privateKeySecretRef:     privateKeySecretRef:
  • linux_faq/kubernetes_using_single_node_as_master_and_worker.txt
  • Last modified: 2024/04/22 12:38
  • by admin