Install Kubernetes Cluster with kubeadm (Linux VM/Mac/Windows, x86/Arm)

Поділитися
Вставка
  • Опубліковано 22 сер 2024
  • This is a quick walkthrough of installing Kubernetes with kubeadm.
    Installing kubeadm: kubernetes.io/...
    Install Docker Engine: docs.docker.co...
    Install cri-dockerd: github.com/Mir...
    Pod network addons: kubernetes.io/...
    Calico pod network cidr: projectcalico....
    kubectl join command: stackoverflow....
    #kubernetes #install #kubeadm

КОМЕНТАРІ • 126

  • @dhij
    @dhij  Рік тому +6

    Please note one important step that I forgot to go over in the video--make sure to forward IPv4 and let iptables see the bridged traffic as described: kubernetes.io/docs/setup/production-environment/container-runtimes/#forwarding-ipv4-and-letting-iptables-see-bridged-traffic

    • @jasoncoltrin6181
      @jasoncoltrin6181 Рік тому

      at which step is the forward created? Right before kubeadm init?

    • @dhij
      @dhij  Рік тому

      @@jasoncoltrin6181 either before or after, that shouldnt matter too much!

    • @jasoncoltrin6181
      @jasoncoltrin6181 Рік тому

      @@dhij Awesome finally all my pods are running! How many of these steps need to be done on the nodes prior to running the kubeadm join ?

    • @dhij
      @dhij  Рік тому

      @@jasoncoltrin6181 Awesome! Once you do your kubeadm init and set up your pod networking on your controlplane node, the kubeadm join should work fine

    • @Prashant-ig1ny
      @Prashant-ig1ny 7 місяців тому

      I have done the Forwarding IPv4 and letting iptables see bridged traffic but still the pods of calico-kube-controllers, calico-node and coredns are not coming up as ready.

  • @paul_fm
    @paul_fm 11 місяців тому +6

    This video tutorial continues to be effective in the third quarter of 2023. Extremely helpful!

    • @dhij
      @dhij  11 місяців тому

      Thank you for confirming!

  • @TeemoPwnstar
    @TeemoPwnstar 27 днів тому

    For anyone having problems getting the init to work (timeout crash after 4min), you have to turn swap off (sudo swapoff -a). Thanks for awesome video.

  • @shubhamkumbhar7660
    @shubhamkumbhar7660 25 днів тому

    Thank you so much for making this video, I was passing wrong cni pod cidr that caused errors. After seeing this guide I was able to create cluster without any issues 😃🙏

    • @dhij
      @dhij  24 дні тому +1

      Glad to hear it worked out for you 🙂

  • @omza10
    @omza10 Рік тому

    The documentation can be pretty complicated and most of the tutorial that I saw aren't showing how to install kubernetes as it described in the documentation.
    After watching this video I was able to install it, thank you!

    • @dhij
      @dhij  Рік тому +1

      Exactly! Awesome, glad that helped!

  • @jasoncoltrin6181
    @jasoncoltrin6181 Рік тому +2

    thank you so much for this, I've been trying to get kubernetes running using outdated videos and hit all kinds of depreciation issues

    • @dhij
      @dhij  Рік тому

      Glad it helped!

  • @leo5946
    @leo5946 Рік тому +1

    best guide to help you understand creating a 3 node cluster.

    • @dhij
      @dhij  Рік тому

      Thank you!

  • @ritiktiwari360
    @ritiktiwari360 Рік тому +3

    big thank you bro you solve my problem ,i am stuck continue 3 days ago now , my k8s error free big thank you.

    • @dhij
      @dhij  Рік тому

      You welcome, glad it helped!

  • @MrSuriyam
    @MrSuriyam 10 місяців тому +1

    Thank you for the full installation video. Appreciate it sir.

  • @kunal-gohrani
    @kunal-gohrani Рік тому

    I was trying to install kubernetes using kubeadm from past 2 days in a ubuntu arm64 vm in mac os m1. Your video helped me!

  • @pjj7466
    @pjj7466 Рік тому

    Thank you so much brother and till now I have seen many UA-cam videos and they all are provided a custom commands for installing kubernetes cluster but other not working at all and I have face many problems doing those so actually I found a great video right now thank you so much for showing the how to setup to kubeadm kubernetes cluster with official documentation.

    • @dhij
      @dhij  Рік тому

      Glad that helped!!

  • @180doman
    @180doman Рік тому +4

    Man, you saved me with this one. Im setting up k8s cluster with kubeadm for the first time and got stuck with this "multiple socket" problem from kubeadm init command. Adding --cri-socket parameter solved it! It would be great if you would make some video about metalb integration to the cluster (for ingress).

    • @dhij
      @dhij  Рік тому +1

      Great! I actually came across a blog post a few days ago that used metallb for networking, this might help: rpi4cluster.com/k3s/k3s-nw-setting/

  • @michaelmellor6061
    @michaelmellor6061 Рік тому

    Awesome video really helped give a clear explanation of the setup, the kube docs are good but a clear well paced video like this really helps

    • @dhij
      @dhij  Рік тому

      glad it helped!

  • @suneelkumar5175
    @suneelkumar5175 Рік тому

    Great work man I used to set up the k8s cluster a few years ago and things got changed a lot since then and now when I am trying to set up a cluster it is not working as previously now your tutorial saved me Thanks man.

    • @dhij
      @dhij  Рік тому

      Glad to hear, thank you!

  • @yoRebooorn
    @yoRebooorn Рік тому

    Thank you so much for your explanation, I've been blocked in kubernetes installation on a Ubuntu distro for so long

    • @dhij
      @dhij  Рік тому

      Glad that helped!

  • @RauanZhorabek
    @RauanZhorabek Рік тому +1

    thank you for your video. very well explained tutorial!

    • @dhij
      @dhij  Рік тому +1

      thank you!

  • @qubit3807
    @qubit3807 11 місяців тому

    Thank you very much for this guide, deeply appreciated!

    • @dhij
      @dhij  11 місяців тому

      glad that helped!

  • @HdeHidratado
    @HdeHidratado Рік тому

    Great work man. I've been trying to setup it up for about a week, and was finally able after watching your video. My main issue was that I wasn't setting the correct 'cidr' flag, for the cni plugins I tried.

    • @dhij
      @dhij  Рік тому

      Nice, glad that helped!

  • @sameman2218
    @sameman2218 Рік тому

    Thanks a lot. The best guide for k8s setup👍

    • @dhij
      @dhij  Рік тому

      appreciate it!

  • @danielorgepeon3211
    @danielorgepeon3211 3 місяці тому

    Como te quiero chavalín!!! Eres un grande

  • @boopalanpichandi8178
    @boopalanpichandi8178 Рік тому

    Awesome bro ❤very useful of your guidance for setup kubernet on server 🔥

    • @dhij
      @dhij  Рік тому +1

      Glad it helped bro!

  • @rashidahamed6234
    @rashidahamed6234 Рік тому

    Hi, Thank you very much. finally my k8s cluster in cloud vm, up and running :))

    • @dhij
      @dhij  Рік тому

      Awesome!

  • @narayanbais6266
    @narayanbais6266 5 місяців тому

    Super you are the boss👍

  • @nohandsignal
    @nohandsignal Рік тому

    subscribed in less than a minute draggging the video

    • @dhij
      @dhij  Рік тому

      hahah thanks man!

  • @alexanderbelkin5978
    @alexanderbelkin5978 9 місяців тому

    Thanks tou David! It's was very helpfull!

  • @sureshchandrasahoo4877
    @sureshchandrasahoo4877 7 місяців тому

    You skipped the cgroup driver configuration part and did not tell us about it either. You should cover those parts that you are committing in the video. Anyway, thanks for this video. It is really helpful for setting up a Kubernetes cluster for a bigener.

  • @oleksandrtomson1829
    @oleksandrtomson1829 6 місяців тому

    Omg dude, you're the best

  • @elioscipioni
    @elioscipioni 3 місяці тому

    great video!

  • @apidas
    @apidas Рік тому

    very good tutorial, pretty comprehensive

    • @dhij
      @dhij  Рік тому

      Appreciate it!

  • @achrafboucetta7215
    @achrafboucetta7215 Рік тому

    Thank you very much that's helps me too much !

    • @dhij
      @dhij  Рік тому

      Glad it helped!

  • @ilkeradiguzel7804
    @ilkeradiguzel7804 Рік тому

    Appreciate the good work mate

    • @dhij
      @dhij  Рік тому

      thank you mate!

  • @worldhack.1201
    @worldhack.1201 17 днів тому

    Very effective

  • @akhtarshah7944
    @akhtarshah7944 Рік тому

    Classic work Great Man

    • @akhtarshah7944
      @akhtarshah7944 Рік тому

      soulation:
      ---------
      root@ubuntu:~# cp /etc/kubernetes/admin.conf $HOME/
      root@ubuntu:~# chown $(id -u):$(id -g) $HOME/admin.conf
      root@ubuntu:~# export KUBECONFIG=$HOME/admin.conf
      root@ubuntu:~# echo 'export KUBECONFIG=$HOME/admin.conf' >> $HOME/.bashrc
      root@ubuntu:~# kubectl get pod -A --watch
      NAMESPACE NAME READY STATUS RESTARTS AGE
      kube-system calico-kube-controllers-57b57c56f-kddcs 1/1 Running 1 (43m ago) 19h
      kube-system calico-node-pb42t 1/1 Running 1 (43m ago) 19h
      kube-system coredns-787d4945fb-ght5s 1/1 Running 2 (43m ago) 19h
      kube-system coredns-787d4945fb-nlx5q 1/1 Running 2 (43m ago) 19h
      kube-system etcd-ubuntu 1/1 Running 1 (43m ago) 19h
      kube-system kube-apiserver-ubuntu 1/1 Running 1 (43m ago) 19h
      kube-system kube-controller-manager-ubuntu 1/1 Running 1 (43m ago) 19h
      kube-system kube-proxy-phdpj 1/1 Running 1 (43m ago) 19h
      kube-system kube-scheduler-ubuntu 1/1 Running 1 (43m ago)

  • @codingnetworks
    @codingnetworks Рік тому

    Great Tutorial!! 👏. Just wanted to comment that to the date cri-dockerd installation have improved. In my case i used .deb package to install it.

    • @dhij
      @dhij  Рік тому +1

      Ah, thanks for sharing. Glad that helped!

  • @huben92
    @huben92 4 місяці тому

    Thank you sir

  • @leventsezgingenc8568
    @leventsezgingenc8568 Рік тому

    Thank you David.

    • @dhij
      @dhij  Рік тому

      Glad that helped!

  • @long3850
    @long3850 8 місяців тому

    very helpful !

  • @MisterDragonn
    @MisterDragonn 7 місяців тому

    Merci pour les travaux

  • @angeldelafuente1329
    @angeldelafuente1329 4 місяці тому

    Hello David,
    2 questions:
    a) do I have to forward the ipv4 also on the working node?
    b) how do I join the working node to the control plane?
    Everything else seems to be working ;-)

    • @angeldelafuente1329
      @angeldelafuente1329 4 місяці тому

      I respond myself.
      a) not necessary
      b) coping the command with the token of the control plane
      thanks David ;-)

  • @shivamanand8998
    @shivamanand8998 Рік тому

    Hi all, this video works

  • @user-pr8vz6bz2s
    @user-pr8vz6bz2s 6 місяців тому

    Thank you for the tutorial it's pretty helpfull,
    I have a question please, after the install of Calico by the yaml file, I have got the error:
    The connection to the server :6443 was refused - did you specify the right host or port?

    • @dhij
      @dhij  6 місяців тому

      it might mean that the default api server that calico is configured to use is different from where your apiserver is actually running

    • @user-pr8vz6bz2s
      @user-pr8vz6bz2s 6 місяців тому

      Thank you for your reply, after investigation, it turns out that I should have installed the container runtime and Kubernetes as root user instead of another admin user, that worked perfectly after doing so
      Thank you again for your help :)

  • @infologiax
    @infologiax 6 місяців тому

    Merci !!

  • @harshpandey1945
    @harshpandey1945 Рік тому

    Awesome tutorial. But somehow my pods running on 2 different nodes can not communicate with each other. The ones which are on the control-plane node can communicate. Am I missing something here? Is calico supposed to be deployed on worker nodes too?

  • @PiccoloPizza-qb9go
    @PiccoloPizza-qb9go Рік тому

    We should do a github gist as a script to merge all of this for plug and play install

  • @UnchartedWorlds
    @UnchartedWorlds Рік тому

    Hi, do we have to repeat the procedure with CRI stuff on worker nodes or is this enough just for the Master node? Thank you for great tutorial, I was stuck with [ERROR CRI]: container runtime is not running error

    • @dhij
      @dhij  Рік тому

      Nope I believe you wouldnt need CRI related installation on your worker nodes!

  • @oumaymalaamiri3146
    @oumaymalaamiri3146 Рік тому

    great work thanks

    • @dhij
      @dhij  Рік тому

      thank you!

  • @amitkumar-sm5kd
    @amitkumar-sm5kd 11 місяців тому

    I am getting an error
    Waiting for kubelet to boot up the control plane as static pods from directory etc/kubernetes/manifests. This can take up to 4m0s. Connection refused

    • @Joker3884
      @Joker3884 10 місяців тому

      try to write sudo swapoff -a

  • @nohandsignal
    @nohandsignal Рік тому

    legend you are

  • @vejeygandier3454
    @vejeygandier3454 Рік тому

    @dhij Great job! I could create a control plane. Do you know how I would create a windows worker node and add it to the control plane? That would be super useful. Looking forward to your tutorial

    • @dhij
      @dhij  Рік тому

      Thank you Vejey! Glad that worked. Unfortunately I havent tried, did you have any luck with that?

  • @ajayprajapati2453
    @ajayprajapati2453 3 місяці тому

    It helped me to setup the cluster but after installing calico my core dns pods are not coming up . I have changed the pod cidr in calico.yaml. After running kubeadm init all the pods are running except the core dns and then I installed calico but calico node pod itself is not coming up.

    • @dhij
      @dhij  3 місяці тому

      Have you tried `kubectl describe` or `kubectl logs` of the coredns pod to see what it says there?

  • @user-wf8fp6ds9v
    @user-wf8fp6ds9v 4 місяці тому

    I want to set it up using script, so that I can run it as many times as I need. How to make script from this?

  • @yourrakesh123
    @yourrakesh123 Рік тому

    I followed the exact the same steps while running K8 on Ubuntu 20. I am getting an error while checking the status of kubelet Active: activating (auto-restart). Could you please suggest what might be the issue.

  • @mr.beesexual
    @mr.beesexual Рік тому

    Great video, thanks a lot. But I didn't understand if this just leaves me with single-node cluster.

    • @dhij
      @dhij  Рік тому +1

      Thanks! Yes you will have a single controlplane node if you follow the steps in this video. If you would like to add a node, you can set up a new VM, install kubeadm/kubectl/kubelet, container runtime, etc as explained at 13:33, and use the `kubeadm join` command shown at 11:19 (or refer to 14:00 if you did not copy the `kubeadm join` command).

  • @selinoktay8372
    @selinoktay8372 Рік тому

    thank you so much, my coredns works now! i'm getting an error for one of the pods (calico-kube-controllers-57b57c56f...). its state seems to oscillate between ErrImagePull and ImagePullBack. I took the same steps as you did and even reset kubeadm. i dont use docker, only containerd. i've tried to pull the image from dockerhub but no use (stuck in infinite loop). any ideas on how this could be solved?

    • @dhij
      @dhij  Рік тому +1

      thank you! the ErrImagePull can happen because of many different reasons so its hard to tell. you can try reading the logs and make sure you are pulling the right image with the tag

  • @shivamanand8998
    @shivamanand8998 Рік тому

    What about the opening of ports and disabling swap?

  • @angeldocampo
    @angeldocampo Рік тому

    what about intalling metrics server?

  • @ashwinkm3156
    @ashwinkm3156 Рік тому

    How do i join another control plane?

  • @HungNguyen-ef4yf
    @HungNguyen-ef4yf Рік тому

    Can you help me?
    After i run kubeadm init,
    [error cri] container runtime is not running

    • @dhij
      @dhij  Рік тому

      If you are using docker as your container runtime, that really just means that your docker is not running :)

  • @hemanthdinavahi2020
    @hemanthdinavahi2020 Рік тому

    cri-docker.socket failing once I jnitialize the kube using kubeadm init command

  • @nohandsignal
    @nohandsignal Рік тому

    you`ve choosen 192 in inti but you`ve got 10 series in join command how is it possible

    • @dhij
      @dhij  Рік тому

      The 192 IP range is the pod network cidr, and it is a provider-specific value as mentioned in the 2nd point here: kubernetes.io/docs/setup/production-environment/tools/kubeadm/create-cluster-kubeadm/#initializing-your-control-plane-node
      And it is mentioned in the first bullet point here (kubernetes.io/docs/setup/production-environment/tools/kubeadm/create-cluster-kubeadm/#pod-network) that the pod network must not overlap with any of the host networks.
      The 10 IP range is the internal IP address assigned for my VM on Google Cloud. Hope that helps!

  • @suneelkumar5175
    @suneelkumar5175 Рік тому

    we are facing problem at this step like "Package 'docker-ce' has no installation candidate" can some one explain why I am getting this error.

    • @dhij
      @dhij  Рік тому

      Which distro are you using? if you are on ubuntu, here is what i found: askubuntu.com/questions/1030179/package-docker-ce-has-no-installation-candidate-in-18-04

    • @suneelkumar5175
      @suneelkumar5175 Рік тому

      @@dhij Ubuntu 20 in aws

    • @suneelkumar5175
      @suneelkumar5175 Рік тому

      @@dhij i got this solution but I want to know the reason why it is throwing this error

    • @ziadmohammed5448
      @ziadmohammed5448 Рік тому

      @@suneelkumar5175 i believe AWS uses there own internal repos check your /etc/apt/sources.list

  • @Kalaiarasan_Balu
    @Kalaiarasan_Balu Рік тому

    Hi what about container runtime container d installation?

    • @dhij
      @dhij  Рік тому

      Hello, I installed cri-dockerd, which is described at 3:10 mark of the video :)

  • @leo5946
    @leo5946 Рік тому

    is turning off firewall and swap not required ?

    • @dhij
      @dhij  Рік тому

      not as far as i know!

  • @tiagoneves2154
    @tiagoneves2154 11 місяців тому

    Jesus... I need compile a something in GO to install another somethiing...

  • @cesarcastillo_
    @cesarcastillo_ Рік тому

    It doesn't work for me :(

    • @dhij
      @dhij  Рік тому

      I might be able to help a little if you let me know what error message you are getting :)

    • @varunchauhan5971
      @varunchauhan5971 Рік тому

      @@dhij how do i connect to the pods running on the worker nodes groom browser? The pods are running on private IP 192.*.*.* Something. How do I access them from browser

    • @varunchauhan5971
      @varunchauhan5971 Рік тому

      @@dhij how do i connect to the pods running on the worker nodes groom browser? The pods are running on private IP 192.*.*.* Something. How do I access them from browser

  • @ilayohana3150
    @ilayohana3150 11 днів тому

    does anyone really understand all of this

  • @RameshKumar-rt8xb
    @RameshKumar-rt8xb Рік тому

    How would I set up working nodes outside of the master network? It's in the same network of the master.

  • @TuncDarbas
    @TuncDarbas Рік тому +1

    After mu Cluster join command , I gotta this message below , Any idea =)
    Found multiple CRI endpoints on the host. Please define which one do you wish to use by setting the 'criSocket' field in the kubeadm configuration file: unix:///var/run/containerd/containerd.sock, unix:///var/run/cri-dockerd.sock
    To see the stack trace of this error execute with --v=5 or higher

    • @dhij
      @dhij  Рік тому +1

      Yup you can specify the cri-socket with the --cri-socket option. Please refer to 10:08 :)

    • @TuncDarbas
      @TuncDarbas Рік тому

      Ok . Today I have pretty much time and I learned logic of kubernetes =) Now I have 1 master +3 worker nodes cluster =) I will try to create 2 scripts ; 1 is for worker nodes. 1 is for master node... Thanks a lot =)

    • @dhij
      @dhij  Рік тому +1

      @@TuncDarbas Awesome, good luck!

  • @Csdsds
    @Csdsds 10 місяців тому

    I am getting error can you share your email? And help