In the previous post we have successfully installed Docker, K8s
component which required as part of setting up kubernetes cluster.
Running Cluster
On the Kube master node, initialize the cluster:
Copy that command and run it with sudo on both worker nodes.
Flannel acquire a subnet lease, configure its routes based on other leases in the overlay network and start routing packets.
Flannel official site: https://coreos.com/flannel/docs/latest/
Run this command to get a list of system pods:
Running Cluster
On the Kube master node, initialize the cluster:
sudo kubeadm init --pod-network-cidr=10.244.0.0/16
when it is done, set up the local kubeconfig:mkdir -p $HOME/.kube
sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
sudo chown $(id -u):$(id -g) $HOME/.kube/config
Verify that the cluster is responsive and that Kubectl is working:kubectl version
The kubeadm init command should output a kubeadm join command
containing a token and hash. Copy that command and run it with sudo on both worker nodes.
sudo kubeadm join $some_ip:6443 --token $some_token --discovery-token-ca-cert-hash $some_hash
Verify that all nodes have successfully joined the cluster:kubectl get nodes
You should see all three of your nodes listed. It should look something like this:
NAME STATUS ROLES AGE VERSION
master-1.mylabserver.com NotReady master 5m17s v1.17.2
worker-1.mylabserver.com NotReady <none> 53s v1.17.2
worker-2.mylabserver.com NotReady <none> 31s v1.17.2
Note: The nodes are expected to have a STATUS of “NotReady” at this point.Configure Networking with Flannel
Once the Kubernetes cluster is set up, we need to configure cluster networking in order to make the cluster fully functional. Flannel is responsible for assigning IP to a pod and act as a packet forwarder by running a daemon flanneld on every node.Flannel acquire a subnet lease, configure its routes based on other leases in the overlay network and start routing packets.
Flannel official site: https://coreos.com/flannel/docs/latest/
- On all three nodes, run the following:
echo "net.bridge.bridge-nf-call-iptables=1" | sudo tee -a /etc/sysctl.conf sudo sysctl -p
- Install Flannel in the cluster by running this only on the Master node:
kubectl apply -f https://raw.githubusercontent.com/coreos/flannel/bc79dd1505b0c8681ece4de4c0d86c5cd2643275/Documentation/kube-flannel.yml
- Verify that all the nodes now have a STATUS of
Ready
:kubectl get nodes
You should see all three of your servers listed, and all should have a STATUS ofReady
. It should look something like this:
NAME STATUS ROLES AGE VERSION wboyd1c.mylabserver.com Ready master 5m17s v1.17.2 wboyd2c.mylabserver.com Ready <none> 53s v1.17.2 wboyd3c.mylabserver.com Ready <none> 31s v1.17.2
Run this command to get a list of system pods:
kubectl get pods -n kube-system
You should have three pods with flannel in the name, and all three should have a status of Running.
Update:
ReplyDeletekubectl apply -f https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.yml