Kubernetes tutorial: How to install a cluster on Ubuntu with kubeadm?
Vložit
- čas přidán 20. 08. 2024
- Start learning Kubernetes with my useful tutorial on installing a cluster on Ubuntu with kubeadm. In this step-by-step guide, I'll walk you through the process of setting up a Kubernetes cluster on Ubuntu, leveraging the simplicity and efficiency of kubeadm. Whether you're a beginner eager to dive into container orchestration or an experienced user looking to expand your skills, this tutorial provides clear instructions and practical demonstrations to help you get your Kubernetes cluster up.
Discover the ease of deploying a Kubernetes cluster on Ubuntu with kubeadm in my in-depth video tutorial. From installing the necessary dependencies to initializing the cluster and joining nodes, I cover every aspect of the setup process. Don't miss out on this opportunity to level up your Kubernetes expertise! - Věda a technologie
man that cgroup driver saved my week. thanks a million
Glad to hear it. You are welcome!
Thanks You Very Much !!! working well for me
Many Thanks! Very usefull video!
did it worked for you ? I am facing some trouble when i try to init cluster, says its: st:10248/healthz": dial tcp 127.0.0.1:10248: connect: connection refused.
Unfortunately, an error has occurred:
timed out waiting for the condition
This error is likely caused by:
- The kubelet is not running
- The kubelet is unhealthy due to a misconfiguration of the node in some way (required cgroups disabled)
If you are on a systemd-powered system, you can try to troubleshoot the error with the following commands:
- 'systemctl status kubelet'
- 'journalctl -xeu kubelet'
Additionally, a control plane component may have crashed or exited when started by the container runtime.
To troubleshoot, list all containers using your preferred container runtimes CLI.
Here is one example how you may list all running Kubernetes containers by using crictl:
- 'crictl --runtime-endpoint unix:///var/run/containerd/containerd.sock ps -a | grep kube | grep -v pause'
Once you have found the failing container, you can inspect its logs with:
- 'crictl --runtime-endpoint unix:///var/run/containerd/containerd.sock logs CONTAINERID'
error execution phase wait-control-plane: couldn't initialize a Kubernetes cluster
To see the stack trace of this error execute with --v=5 or higher
Thank You Very Much.
You are welcome!
Hi, what will be the command at 3:55 if i am using docker instead of containerd
Hi, Kubernetes has not supported Docker since version 1.24. Here is more information about it: kubernetes.io/blog/2022/02/17/dockershim-faq/
Thank you very much for this video. Can you share the manifest file you created in 9:09 ?
Hi, here it is:
apiVersion: apps/v1
kind: Deployment
metadata:
name: nginx-deployment
labels:
app: nginx
spec:
replicas: 3
selector:
matchLabels:
app: nginx
template:
metadata:
labels:
app: nginx
spec:
containers:
- name: nginx
image: nginx:1.14.2
ports:
- containerPort: 80
---
apiVersion: v1
kind: Service
metadata:
name: nginx
spec:
type: ClusterIP
ports:
- targetPort: 80
port: 80
selector:
app: nginx
thankyou
You are welcome!
Thank you for this video, I initialized my cluster and everything was working perfectly. However, after I rebooted my machines, the kubectl get nodes command stopped working. When I run sudo kubectl get nodes, I get the following error message:The connection to the server 192.168.56.101:6443 was refused - did you specify the right host or port?
Hi, have you disabled swap?
stackoverflow.com/questions/56737867/the-connection-to-the-server-x-x-x-6443-was-refused-did-you-specify-the-right
Try to execute these commands on the master node:
1. sudo -i
2. swapoff -a
@@LearnDevOpswithSerge Thanks You Very Much
Thanks. Did try to install the dashboard. Please share if you have done it already
Hi, here it is: czcams.com/video/SUk_Nm5BiPw/video.html
how can we configure 3 vms in single machine and can we run master and worker nodes on same machine?
Hi,
I use VirtualBox with Vagrant to create VMs. In Linux, you can use KVM or VirtualBox too.
Yes, you can use master for your workloads. To do it, remove taints on the master/control plane node.
Hi Serge,
I have followed your tutorial, However, Kube Proxy status shows a Crashloop error
Any suggestion Please ?
Thanks
Hi, I guess you mean Flannel when talking about kube proxy.
1. Check logs of the crashed container: "kubectl -n logs -p "
2. Check events of the pod in the 'CrashLoopBackOff' state: "kubectl -n describe pod "
3. Analyze the information from the 1st and 2d list items.
What is kubeadm? What is the use? When we should use?
Hi, kubernetes.io/docs/reference/setup-tools/kubeadm/
Thanks for the informative vid. Would be nice to have a google doc stating the command at 3:55
Hi,
containerd config default | sed 's/SystemdCgroup = false/SystemdCgroup = true/' | sed 's/sandbox_image = "registry.k8s.io\/pause:3.6"/sandbox_image = "registry.k8s.io\/pause:3.9"/' | sudo tee /etc/containerd/config.toml
@@LearnDevOpswithSerge thank you! Subscribed
Hi , i want to learn step by step about kubernetes with syllabus. Can u share here...
Hi, I'm going to make a video about it.
Thanks you
for me Culster set up is ready because of you but little issue my pods are not running properly when im using flannel but when i using calico now my pods are running
dude at 3:49 its big command where can i get that?
Hi,
containerd config default | sed 's/SystemdCgroup = false/SystemdCgroup = true/' | sed 's/sandbox_image = "registry.k8s.io\/pause:3.6"/sandbox_image = "registry.k8s.io\/pause:3.9"/' | sudo tee /etc/containerd/config.toml
Hello, for the command at 5:35 how to you find the --apiserver-advertise-address
Hi, it is an IP of your master node. You can find out it by the command: "ip address show" or shortly "ip a".
```
vagrant@master:~$ ip address show | grep 192.168.1.50
inet 192.168.1.50/24 brd 192.168.1.255 scope global enp0s8
```
@@LearnDevOpswithSerge Thank you! Do you have a video to show how to setup the kubernetes dashboard?
I haven't done it yet. Thanks for the idea!
@@LearnDevOpswithSerge also, the --pod-network-cidr, where did you find that?
@@user-oz2of8yq7z Hi, 2d item kubernetes.io/docs/setup/production-environment/tools/kubeadm/create-cluster-kubeadm/#initializing-your-control-plane-node
at 03:47 you prepared a command, from where do i get it.
Hi,
containerd config default | sed 's/SystemdCgroup = false/SystemdCgroup = true/' | sed 's/sandbox_image = "registry.k8s.io\/pause:3.6"/sandbox_image = "registry.k8s.io\/pause:3.9"/' | sudo tee /etc/containerd/config.toml
@@LearnDevOpswithSerge how did you generate this command. any documentation for it. up till this stage you have explained everything in detail but just copied and pasted this out of nowhere. the tutorial is very great!
@christopherobinna2140 Hi,
1. SystemdCgroup = true # The documentaion about it kubernetes.io/docs/setup/production-environment/container-runtimes/#containerd-systemd
2. The issue with sandbox image: github.com/cri-o/cri-o/issues/6985
discuss.kubernetes.io/t/can-not-install-kubernetes-cluster-with-kubeadm/24079
----
Note that the version of the sandbox image in each Containerd version can be changed so check it. For example, in my video, the version is 3.6 and now it is 3.8.
The message while installing Kubernetes:
W0725 06:32:35.829024 14158 checks.go:844] detected that the sandbox image "registry.k8s.io/pause:3.8" of the container runtime is inconsistent with that used by kubeadm.It is recommended to use "registry.k8s.io/pause:3.9" as the CRI sandbox image.
how did u created the master and worker nodes?
Hi, I run virtual machines using VirtualBox and Vagrant.
containerd config default | sudo tee /etc/containerd/config.toml >/dev/null 2>&1
$ sudo sed -i 's/SystemdCgroup \= false/SystemdCgroup \= true/g' /etc/containerd/config.toml
from where did u get this command in k8s documentation
Hi,
1. SystemdCgroup = true # The documentaion about it kubernetes.io/docs/setup/production-environment/container-runtimes/#containerd-systemd
2. The issue with sandbox image:
github.com/cri-o/cri-o/issues/6985
discuss.kubernetes.io/t/can-not-install-kubernetes-cluster-with-kubeadm/24079
----
Note that the version of the sandbox image in each Containerd version can be changed so check it. For example, in my video, the version is 3.6 and now it is 3.8.
The message while installing Kubernetes:
W0725 06:32:35.829024 14158 checks.go:844] detected that the sandbox image "registry.k8s.io/pause:3.8" of the container runtime is inconsistent with that used by kubeadm.It is recommended to use "registry.k8s.io/pause:3.9" as the CRI sandbox image.