rifaterdemsahin / awscodedeploy

Aws code deploy creating a Redis using Ansible
1 stars 1 forks source link

Question5:how do we use kubelets #13

Open madhavisringarapu opened 5 years ago

madhavisringarapu commented 5 years ago

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

madhavisringarapu commented 5 years ago

demo creation of a worker installing kubelet.and show the running kubelet

madhavisringarapu commented 5 years ago

demo link: https://drive.google.com/open?id=1BPA_0jc7m-b20f7GzXXkm8jznNbl98sI image

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 < /etc/sysctl.d/k8s.conf net.bridge.bridge-nf-call-ip6tables = 1 net.bridge.bridge-nf-call-iptables = 1 EOF sysctl --system Step-5.1 Install Docker & enable on restart Ubuntu

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 </etc/apt/sources.list.d/kubernetes.list deb http://apt.kubernetes.io/ kubernetes-xenial main EOF

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 47s v1.11.0 Step-12 Apply flannel Addons

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 53/UDP,53/TCP 2m Create Tokens

[root@kube-master ~]kubeadm token create I0710 04:08:37.149017 8685 feature_gate.go:230] feature gates: &{map[]} d49l0d.mheeem1dkrw3n436