Follow this documentation to set up a Kubernetes cluster on CentOS 7 machines.
This documentation guides you in setting up a cluster with one master node and two worker nodes.
-
System Requirements
Master: t2.medium (2 CPUs and 2GB Memory)
Worker Nodes: t2.micro -
Open Below ports in the Security Group.
6443 32750 10250 4443 443 8080
179
-
Perform all the commands as root user unless otherwise specified
Install, Enable and start docker service. Use the Docker repository to install docker.
If you use docker from CentOS OS repository, the docker version might be old to work with Kubernetes v1.13.0 and above
yum install -y -q yum-utils device-mapper-persistent-data lvm2 > /dev/null 2>&1 yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo > /dev/null 2>&1 yum install -y -q docker-ce >/dev/null 2>&1
-
Start Docker services
systemctl enable docker systemctl start docker
-
Disable SELinux
setenforce 0 sed -i --follow-symlinks 's/^SELINUX=enforcing/SELINUX=disabled/' /etc/sysconfig/selinux
-
Disable Firewall
systemctl disable firewalld systemctl stop firewalld
-
Disable swap
sed -i '/swap/d' /etc/fstab swapoff -a
-
Update sysctl settings for Kubernetes networking
cat >> /etc/sysctl.d/kubernetes.conf <<EOF net.bridge.bridge-nf-call-ip6tables = 1 net.bridge.bridge-nf-call-iptables = 1 EOF sysctl --system
- Add yum repository for kubernetes packages
cat >>/etc/yum.repos.d/kubernetes.repo<<EOF [kubernetes] 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/yum-key.gpg https://packages.cloud.google.com/yum/doc/rpm-package-key.gpg EOF
- Install Kubernetes
yum install -y kubeadm kubelet kubectl
- Enable and Start kubelet service
systemctl enable kubelet systemctl start kubelet
-
Initialize Kubernetes Cluster
kubeadm init --apiserver-advertise-address=<MasterServerIP> --pod-network-cidr=192.168.0.0/16
-
Create a user for kubernetes administration and copy kube config file.
To be able to use kubectl command to connect and interact with the cluster, the user needs kube config file.
In this case, we are creating a user calledkubeadmin
useradd kubeadmin mkdir /home/kubeadmin/.kube cp /etc/kubernetes/admin.conf /home/kubeadmin/.kube/config chown -R kubeadmin:kubeadmin /home/kubeadmin/.kube
-
Deploy Calico network as a kubeadmin user.
This should be executed as a user (heare as a kubeadmin )
sudo su - kubeadmin curl https://docs.projectcalico.org/manifests/calico-typha.yaml -o calico.yaml kubectl apply -f calico.yaml
-
Cluster join command
kubeadm token create --print-join-command
-
Add worker nodes to cluster
Use the output from kubeadm token create command in previous step from the master server and run here.
-
Verifying the cluster To Get Nodes status
kubectl get nodes
To Get component status
kubectl get cs