Open madhavisringarapu opened 5 years ago
demo creation of a worker installing kubelet.and show the running kubelet
demo link: https://drive.google.com/open?id=1BPA_0jc7m-b20f7GzXXkm8jznNbl98sI
Requirement | Kubenetes-master | Kubenetes-minion |
---|---|---|
Disable system swap and SELinux | Y | Y |
remove any swap entry from /etc/fstab | Y | Y |
net.bridge.bridge-nf-call-iptables is set to 1 | Y | Y |
Install Docker & enable on restart | Y | Y |
Install kubeadm | Y | Y |
Install kubelet | Y | N |
Install kubectl | Y | N |
Configure docker cgroupsfs | Y | N |
Step-1 Disable system swap run swapoff -a this will immediately disable swap and remove any swap entry from /etc/fstab
Step-2 Disable SE Linux by setenforce 0
Step-4 You should ensure net.bridge.bridge-nf-call-iptables is set to 1 in your sysctl config
cat <
apt-get update apt-get install -y docker.io start and enable Docker Service and check docker service is running
systemctl start docker systemctl enable docker systemctl status docker
Add kube Repo
curl -s https://packages.cloud.google.com/apt/doc/apt-key.gpg | apt-key add -
cat <
kubernetes installation on Ubuntu Setting up Kubernetes apt repository for Ubuntu
apt-get update apt-get install -y kubelet kubeadm kubectl
Enable & start kublet
systemctl enable kubelet
systemctl start kubelet
Step-7 Verify that your Docker cgroup driver matches the kubelet config: (kube-master node)
docker info | grep -i cgroup Cgroup Driver: cgroupfs Configuration for cgroup drive is right in /etc/systemd/system/kubelet.service.d/10-kubeadm.conf
[Service] Environment="KUBELET_CGROUP_ARGS=--cgroup-driver=cgroupfs" Step-8 reload daemon and restart kubelet: (kube-master node)
systemctl daemon-reload systemctl restart kubelet Step-9 Flush Reset Kubernetes component (This will wipeout all the cluster config if exist any do not run this after the config create)
kubeadm reset -f Step-10 kubernetes Network Addon setups starts here For flannel to work correctly, --pod-network-cidr=10.244.0.0/16 has to be passed to kubeadm init. For Calico to work correctly, --pod-network-cidr=192.168.0.0/16 has to be passed to kubeadm init. Creating flannel Networks
Note apiserver-advertise-address is the IP of the kube-master
kubeadm init --service-cidr 10.96.0.0/12 --kubernetes-version v1.11.0 --pod-network-cidr 10.244.0.0/16 --apiserver-advertise-address 192.168.1.130 You should get information back on initiating commands as a normal user, as well as the network that you need to deploy as well as how to join worker nodes to the cluster.
To start using your cluster, you need to run the following as a regular user:
mkdir -p $HOME/.kube sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config sudo chown $(id -u):$(id -g) $HOME/.kube/config
You can now join any number of machines by running the following on each node as root: Step-11 Join the Cluster (kube-minnion)
kubeadm join 192.168.1.130:6443 --token 5m8qxr.46rpadiwt8fcka0v --discovery-token-ca-cert-hash sha256:b05a0b8849a57432247c06200864f5ce99d40ffdcae965293c0026204ef33da4 Step-12 Run kubectl get nodes on the master to see this node join the cluster. It will few seconds to get your cluster in ready state
root@kube-master:kubectl get nodes
NAME STATUS ROLES AGE VERSION
kube-master Ready master 2m v1.11.0
kube-minion Ready
kubectl apply -f https://raw.githubusercontent.com/coreos/flannel/v0.10.0/Documentation/kube-flannel.yml You will get output like this
clusterrole.rbac.authorization.k8s.io/flannel created clusterrolebinding.rbac.authorization.k8s.io/flannel created serviceaccount/flannel created configmap/kube-flannel-cfg created daemonset.extensions/kube-flannel-ds created Step-13 Enable and restart kubelet engine
systemctl restart kubelet systemctl status kubelet Verification Verify the Cluster Information
root@kube-master: kubectl cluster-info Kubernetes master is running at https://192.168.1.132:6443 KubeDNS is running at https://192.168.1.132:6443/api/v1/namespaces/kube-system/services/kube-dns:dns/proxy Verify the Services
root@kube-master:kubectl get services -n kube-system
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
kube-dns ClusterIP 10.96.0.10
[root@kube-master ~]kubeadm token create I0710 04:08:37.149017 8685 feature_gate.go:230] feature gates: &{map[]} d49l0d.mheeem1dkrw3n436
Kubelets run pods it’s an agent that runs on each node and is responsible for watching the API Server for pods that are bound to its node and making sure those pods are running The main Kubelet responsibilities include: • Run the pods containers. • Report the status of the node and each pod to the API Server. • Run container probes. • Retrieve container metrics from cAdvisor, aggregate and expose them through the Kubelet Summary API for components (such as Heapster) to consume.
Use following command to install kubelet wget https://storage.googleapis.com/kubernetes-release/release/v1.0.3/bin/linux/amd64/kubelet chmod +x kubelet