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.
|
||||
|
||||
Before installing containerd, set the following kernel parameters on all the nodes.
|
||||
$ cat <<EOF | sudo tee /etc/modules-load.d/containerd.conf
|
||||
overlay
|
||||
br_netfilter
|
||||
EOF
|
||||
$ sudo modprobe overlay
|
||||
$ sudo modprobe br_netfilter
|
||||
$ cat <<EOF | sudo tee /etc/sysctl.d/99-kubernetes-k8s.conf
|
||||
net.bridge.bridge-nf-call-iptables = 1
|
||||
net.ipv4.ip_forward = 1
|
||||
net.bridge.bridge-nf-call-ip6tables = 1
|
||||
>$ cat <<EOF | sudo tee /etc/modules-load.d/containerd.conf \
|
||||
overlay \
|
||||
br_netfilter \
|
||||
EOF \
|
||||
$ modprobe overlay \
|
||||
$ modprobe br_netfilter \
|
||||
$ cat <<EOF | sudo tee /etc/sysctl.d/99-kubernetes-k8s.conf \
|
||||
net.bridge.bridge-nf-call-iptables = 1 \
|
||||
net.ipv4.ip_forward = 1 \
|
||||
net.bridge.bridge-nf-call-ip6tables = 1 \
|
||||
EOF
|
||||
|
||||
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.
|
||||
$ 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.
|
||||
|
||||
|
||||
Reference in New Issue
Block a user