Got stuck on Chapter 3 Installation and Configuration on Node
I got stuck when running the kubeadm and I believe I have followed the step by step instruction. Any feedback would be appriciated.
Operating System: CentOS 7.5
Oracle VM Virtual Box:
- Bridge network, allow all promiscuous mode
- 2 vCPU
- Base memory 4096M
- OS Disk 15G
- DHCP with static IP 192.168.0.31, DNS Server 192.168.0.24
Chapter 3 Installation and Configuration on Node
Steps to reproduce on Node:
1. su - root
2. yum update && yum upgrade –y
3. yum install docker
- vi /etc/yum.repos.d/kubernetes.repo
[Kubernetes_Repository]
name=Kubernetes
baseurl=https://packages.cloud.google.com/yum/repos/kubernetes-el7-x86_64/
enabled=1
gpgcheck=1
repo_gpgcheck=1
gpgkey=https://packages.cloud.google.com/yum/doc/rpm-package-key.gpg https://packages.cloud.google.com/yum/doc/yum-key.gpg - yum update
yum install kubeadm kubelet kubectl –y
wget https://docs.projectcalico.org/v3.3/getting-started/kubernetes/installation/hosted/rbac-kdd.yaml
wget https://docs.projectcalico.org/v3.3/getting-started/kubernetes/installation/hosted/kubernetes-datastore/calico-networking/1.7/calico.yamlless calico.yaml
systemctl enable docker.service
- systemctl enable kubelet.service
- systemctl stop firewalld
- swapoff –a
- kubeadm init --kubernetes-version 1.15.1 --pod-network-cidr 192.168.0.0/16 | tee kubeadm-init.out
Error Result:
[kubelet-check] Initial timeout of 40s passed.
Error execution phase wait-control-plane: couldn’t initialize a Kubernetes cluster
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 system-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, e.g. docker .
Here is one example how you may list all Kubernetes containers running in docker:‘docker ps –a | grep kube | grep –v pause’
Once you have found the failing container, you can inspect its logs with:‘docker logs CONTAINERID”
When checking kubelet.service, it says “node server031.whiteopen.com” not found but the kubelet is on active(running) state.
When running this command “kubectl –n kube-system get cm kubeadm-config –oyamlkubectl
The result was “The connection to the server localhost:8080 was refused – did you specify the right host or port?”
Comments
-
Hi,
Please read carefully all the notes and instructions in the Overview section. They provide important VM sizing details for both cloud and local installations. From your notes above, it seems your master node may not be sized accordingly.
When setting up Virtual Box VMs, these were the steps which worked for me (this was a while back, but I assume they still work the same):
1. Create 2 VMs (inspect lab exercise for sizing details)
2. Each VM with 1 NIC adapter - Bridged, Promiscuous mode: Allow All
3. Install guest OS (Ubuntu 16.04 LTS in my case) and virtualbox guest additions
4. Check ufw status, it should be inactive (or any firewall at the guest OS level)
5. Disable the swap partition
6. Verify VMs' full access to the internet and between each other via nc (netcat)
7. Run the installation steps provided in the lab to install docker and kubernetes on each VMsThe lab exercises in their current format require Kubernetes v1.14.1. Download v1.14.1 (instead of latest, as it seems you did based on your notes above) and bootstrap your master with
kubeadm init --kubernetes-version 1.14.1 ....The kubelet service error seems to be related to the DNS configuration of your virtual environment, which may be work-related?
The kubectl command above seems a little off, maybe due to a copy/paste issue, but, kubectl will not run until you finish the master's setup process and fully configure kubectl with necessary endpoint, keys, certs to access the cluster control plane. By attempting to run it so early in the process will produce errors such as yours.
I hope this helps.
If all else fails, just spin up 2 Ubuntu 16 LTS VMs and follow the exercises as they are presented in the lab manual, or sign up for the free 1 year trial of GCP and spin up 2 GCE Ubuntu instances in the cloud.Regards,
-Chris0 -
Hello Chris,
I see. So i need to use the Kubernetes v.1.14.1 instead of the latest?
I was trying to set the first node and for the requirement it said that i was ready for the course when i ran the ready-for.sh.Firewall was already inactive and swap was off. But what do you mean by "The kubelet service error seems to be related to the
DNS configuration of your virtual environment, which may be work-related?". Sorry, i am a beginner and does not have enough knowledge about network but the network can ping google or yahoo.
May i know how to properly configure the network in my case? I want to use static IP which is 192.168.0.31 and my DNS server is 192.168.0.24.
For the kubectl, i found that command from some forums that i have surfed to debug the errors.
I will try the installation from the start, and using Kubernetes v.1.14.1.Thank you for the information and reply.
If it still does not work, i will try using the images that prepared by LF or your recommendations.Regards,
Neirkate0 -
Hello,
Yes, i know the ready-for.sh script is to check for the environment requirements only, and it was my first step after installing CentOS 7.
I have read the lab documentations from Lab 1 - Lab 3 since i was doing it step by step. For the firewall, i chose to stop the firewalld service so there will be no firewall. I've configured the sudo for the system too.I'll try with Ubuntu then instead of CentOS 7.
Thanks.
Regards,
Neirkate0
Categories
- All Categories
- 177 LFX Mentorship
- 177 LFX Mentorship: Linux Kernel
- 750 Linux Foundation IT Professional Programs
- 373 Cloud Engineer IT Professional Program
- 169 Advanced Cloud Engineer IT Professional Program
- 74 DevOps IT Professional Program - Discontinued
- 4 DevOps & GitOps IT Professional Program
- 99 Cloud Native Developer IT Professional Program
- 7.6K Training Courses & Learning Paths
- 1 AI & ML Training
- 1 Blockchain & Decentralized Identity Training
- 3 Cloud & Containers Training
- 1 Cybersecurity Training
- 2 DevOps & Site-Reliability Training
- 1 Linux Kernel Development Training
- 1 Networking Training
- 1 Open Source Best Practice Training
- 1 System Administration Training
- 1 System Engineering Training
- 1 Web & Application Development Training
- 792 Hardware
- 202 Drivers
- 68 I/O Devices
- 37 Monitors
- 95 Multimedia
- 173 Networking
- 91 Printers & Scanners
- 87 Storage
- 769 Linux Distributions
- 81 Debian
- 68 Fedora
- 22 Linux Mint
- 13 Mageia
- 24 openSUSE
- 150 Red Hat Enterprise
- 31 Slackware
- 13 SUSE Enterprise
- 356 Ubuntu
- 465 Linux System Administration
- 31 Cloud Computing
- 73 Command Line/Scripting
- Github systems admin projects
- 98 Linux Security
- 78 Network Management
- 101 System Management
- 46 Web Management
- 106 Mobile Computing
- 18 Android
- 73 Development
- 1.2K New to Linux
- 1K Getting Started with Linux
- 392 Off Topic
- 121 Introductions
- 181 Small Talk
- 29 Study Material
- 955 Programming and Development
- 310 Kernel Development
- 627 Software Development
- 983 Software
- 375 Applications
- 182 Command Line
- 5 Compiling/Installing
- 68 Games
- 317 Installation
- Archived
- 2 LFD140 Class Forum
Upcoming Training
-
August 20, 2018
Kubernetes Administration (LFS458)
-
August 20, 2018
Linux System Administration (LFS301)
-
August 27, 2018
Open Source Virtualization (LFS462)
-
August 27, 2018
Linux Kernel Debugging and Security (LFD440)