debug
This commit is contained in:
@@ -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.
|
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.
|
Before installing containerd, set the following kernel parameters on all the nodes.
|
||||||
$ cat <<EOF | sudo tee /etc/modules-load.d/containerd.conf
|
>$ cat <<EOF | sudo tee /etc/modules-load.d/containerd.conf \
|
||||||
overlay
|
overlay \
|
||||||
br_netfilter
|
br_netfilter \
|
||||||
EOF
|
EOF \
|
||||||
$ sudo modprobe overlay
|
$ modprobe overlay \
|
||||||
$ sudo modprobe br_netfilter
|
$ modprobe br_netfilter \
|
||||||
$ cat <<EOF | sudo tee /etc/sysctl.d/99-kubernetes-k8s.conf
|
$ cat <<EOF | sudo tee /etc/sysctl.d/99-kubernetes-k8s.conf \
|
||||||
net.bridge.bridge-nf-call-iptables = 1
|
net.bridge.bridge-nf-call-iptables = 1 \
|
||||||
net.ipv4.ip_forward = 1
|
net.ipv4.ip_forward = 1 \
|
||||||
net.bridge.bridge-nf-call-ip6tables = 1
|
net.bridge.bridge-nf-call-ip6tables = 1 \
|
||||||
EOF
|
EOF
|
||||||
|
|
||||||
To make above changes into the effect, run
|
To make above changes into the effect, run
|
||||||
$ sudo sysctl --system
|
>$ sysctl --system
|
||||||
|
|
||||||
Now, install conatinerd by running following apt command on all the nodes.
|
Now, install conatinerd by running following apt command on all the nodes.
|
||||||
$ sudo apt update
|
>$ apt update \
|
||||||
$ sudo apt -y install containerd
|
$ apt -y install containerd
|
||||||
|
|
||||||
Next, configure containerd so that it works with Kubernetes, run beneath command on all the nodes
|
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‘
|
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
|
>$ vi /etc/containerd/config.toml
|
||||||
|
|
||||||
Enable-SystemCgroup-Containerd-Debain12
|
|
||||||
|
|
||||||
Save and exit the file.
|
Save and exit the file.
|
||||||
|
|
||||||
Restart and enable containerd service on all the nodes,
|
Restart and enable containerd service on all the nodes,
|
||||||
|
|
||||||
$ sudo systemctl restart containerd
|
>$ systemctl restart containerd \
|
||||||
$ sudo systemctl enable containerd
|
$ systemctl enable containerd
|
||||||
|
|
||||||
## Add Kubernetes Apt Repository
|
## 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
|
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
|
$ 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
|
## Install Kubernetes Tools
|
||||||
Next, install the Kubernetes tools, including kubeadm, kubelet, and kubectl on all the nodes.
|
Next, install the Kubernetes tools, including kubeadm, kubelet, and kubectl on all the nodes.
|
||||||
|
|
||||||
$ sudo apt update
|
>$ apt update \
|
||||||
$ sudo apt install kubelet kubeadm kubectl -y
|
$ apt install kubelet kubeadm kubectl -y \
|
||||||
$ sudo apt-mark hold kubelet kubeadm kubectl
|
$ apt-mark hold kubelet kubeadm kubectl
|
||||||
|
|
||||||
## Install Kubernetes Cluster with Kubeadm
|
## 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.
|
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,
|
Now, we are all set to initialize Kubernetes cluster, run following command only from master node,
|
||||||
|
>$ kubeadm init --config kubelet.yaml
|
||||||
$ sudo kubeadm init --config kubelet.yaml
|
|
||||||
Output,
|
|
||||||
|
|
||||||
Install-Kubernetes-Cluster-Debian12-Kubeadm-Output
|
|
||||||
|
|
||||||
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.
|
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,
|
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
|
Run following kubectl command to get nodes and cluster information
|
||||||
$ sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
|
>$ kubectl get nodes \
|
||||||
$ sudo chown $(id -u):$(id -g) $HOME/.kube/config
|
|
||||||
Run following kubectl command to get nodes and cluster information,
|
|
||||||
|
|
||||||
$ kubectl get nodes
|
|
||||||
$ kubectl cluster-info
|
$ 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’
|
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
|
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
|
--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,
|
Check the nodes status by running following command from master node,
|
||||||
|
>$ kubectl get nodes
|
||||||
$ kubectl get nodes
|
|
||||||
Kubectl-Get-Nodes-Debian12
|
|
||||||
|
|
||||||
To make nodes status ready, we must install POD network addons like Calico or flannel.
|
To make nodes status ready, we must install POD network addons like Calico or flannel.
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user