From 8331264aec32fbc8ff53071dff5ea0a9652703c7 Mon Sep 17 00:00:00 2001 From: Gorden Date: Fri, 16 Feb 2024 12:07:31 +0100 Subject: [PATCH] debug --- .../Installation Kubernetes-Cluster.md | 102 +++++++----------- 1 file changed, 41 insertions(+), 61 deletions(-) diff --git a/Installation/Installation Kubernetes-Cluster.md b/Installation/Installation Kubernetes-Cluster.md index 9e50fd3..8dd589b 100644 --- a/Installation/Installation Kubernetes-Cluster.md +++ b/Installation/Installation Kubernetes-Cluster.md @@ -62,107 +62,87 @@ Note: If firewall is disabled on your Debian 12/11 systems, then you can skip th Containerd is the industry standard container run time and supported by Kubernetes. So, install containerd on all master and worker nodes. Before installing containerd, set the following kernel parameters on all the nodes. -$ cat <$ cat <$ sysctl --system Now, install conatinerd by running following apt command on all the nodes. -$ sudo apt update -$ sudo apt -y install containerd +>$ apt update \ +$ apt -y install containerd Next, configure containerd so that it works with Kubernetes, run beneath command on all the nodes -$ containerd config default | sudo tee /etc/containerd/config.toml >/dev/null 2>&1 +>$ containerd config default | sudo tee /etc/containerd/config.toml >/dev/null 2>&1 Edit the file ‘/etc/containerd/config.toml’ and look for the section ‘[plugins.”io.containerd.grpc.v1.cri”.containerd.runtimes.runc.options]’ and change ‘SystemdCgroup = false’ to ‘SystemdCgroup = true‘ -$ sudo vi /etc/containerd/config.toml - -Enable-SystemCgroup-Containerd-Debain12 +>$ vi /etc/containerd/config.toml Save and exit the file. Restart and enable containerd service on all the nodes, -$ sudo systemctl restart containerd -$ sudo systemctl enable containerd +>$ systemctl restart containerd \ +$ systemctl enable containerd ## Add Kubernetes Apt Repository In Debian 12/11, Kubernetes related packages are not available in the default package repositories. We have to add additional Kubernetes apt repository on all the nodes, run - -$ echo "deb [signed-by=/etc/apt/keyrings/kubernetes-apt-keyring.gpg] https://pkgs.k8s.io/core:/stable:/v1.28/deb/ /" | sudo tee /etc/apt/sources.list.d/kubernetes.list +>$ echo "deb [signed-by=/etc/apt/keyrings/kubernetes-apt-keyring.gpg] https://pkgs.k8s.io/core:/stable:/v1.28/deb/ /" | sudo tee /etc/apt/sources.list.d/kubernetes.list \ $ curl -fsSL https://pkgs.k8s.io/core:/stable:/v1.28/deb/Release.key | sudo gpg --dearmor -o /etc/apt/keyrings/kubernetes-apt-keyring.gpg ## Install Kubernetes Tools Next, install the Kubernetes tools, including kubeadm, kubelet, and kubectl on all the nodes. -$ sudo apt update -$ sudo apt install kubelet kubeadm kubectl -y -$ sudo apt-mark hold kubelet kubeadm kubectl +>$ apt update \ +$ apt install kubelet kubeadm kubectl -y \ +$ apt-mark hold kubelet kubeadm kubectl ## Install Kubernetes Cluster with Kubeadm kubelet doesn’t appreciate the command-line options anymore (these are deprecated). Instead, I suggest to create a configuration file, say ‘kubelet.yaml’ with following content. +>$ vi kubelet.yaml + +>apiVersion: kubeadm.k8s.io/v1beta3 \ +kind: InitConfiguration \ +--- \ +apiVersion: kubeadm.k8s.io/v1beta3 \ +kind: ClusterConfiguration \ +kubernetesVersion: "1.28.0" # Replace with your desired version \ +controlPlaneEndpoint: "k8s-master" \ +--- \ +apiVersion: kubelet.config.k8s.io/v1beta1 \ +kind: KubeletConfiguration -$ vi kubelet.yaml -apiVersion: kubeadm.k8s.io/v1beta3 -kind: InitConfiguration ---- -apiVersion: kubeadm.k8s.io/v1beta3 -kind: ClusterConfiguration -kubernetesVersion: "1.28.0" # Replace with your desired version -controlPlaneEndpoint: "k8s-master" ---- -apiVersion: kubelet.config.k8s.io/v1beta1 -kind: KubeletConfiguration Now, we are all set to initialize Kubernetes cluster, run following command only from master node, - -$ sudo kubeadm init --config kubelet.yaml -Output, - -Install-Kubernetes-Cluster-Debian12-Kubeadm-Output +>$ kubeadm init --config kubelet.yaml Above output confirms that control plane has been initialized successfully. In the output, we have commands for regular user for interacting with the cluster and also the command to join any worker node to this cluster. To start interacting with cluster, run following commands on master node, +>$ mkdir -p $HOME/.kube \ +$ sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config \ +$ sudo chown $(id -u):$(id -g) $HOME/.kube/config \ -$ mkdir -p $HOME/.kube -$ sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config -$ sudo chown $(id -u):$(id -g) $HOME/.kube/config -Run following kubectl command to get nodes and cluster information, - -$ kubectl get nodes +Run following kubectl command to get nodes and cluster information +>$ kubectl get nodes \ $ kubectl cluster-info -Output of above commands, - -Kubernetes-Cluster-information-Debian12 On your worker nodes, join them to the cluster by running the command that was displayed when you initialized the master node. It will look something like this ‘Kubeadm join’ Note: Copy the exact command from the output of ‘kubeadm init’ command. In my case, following is the command - -$ sudo kubeadm join k8s-master:6443 --token 21nm87.x1lgd4jf0lqiiiau \ +>$ sudo kubeadm join k8s-master:6443 --token 21nm87.x1lgd4jf0lqiiiau \\ \ --discovery-token-ca-cert-hash sha256:28b503f1f2a2592678724c482776f04b445c5f99d76915552f14e68a24b78009 -Output from Worker Node 1, - -Worker01-Join-Kubernetes-Cluster-Debain12 - -Output from Worker Nod 2 , - -Worker02-Join-Kubernetes-Cluster-Debain12 Check the nodes status by running following command from master node, - -$ kubectl get nodes -Kubectl-Get-Nodes-Debian12 +>$ kubectl get nodes To make nodes status ready, we must install POD network addons like Calico or flannel.