# Install Docker
sudo apt install docker.io
# Fix Docker access
sudo groupadd docker
sudo usermod -aG docker $USER
if did not work
sudo chmod 777 /var/run/docker.sock
# Enable Docker
sudo systemctl enable docker
# Add Kubernetes Repo
curl -s https://packages.cloud.google.com/apt/doc/apt-key.gpg | sudo apt-key add
sudo apt-add-repository "deb http://apt.kubernetes.io/ kubernetes-xenial main"
# Install Kube Admin
sudo apt install kubeadm
sudo apt install -y kubelet kubeadm kubectl kubernetes-cni
sudo kubeadm version
systemctl status kubectl
# Switch-off all swap permantly
sudo vi /etc/fstab
- comment out all swaps by adding the hash(#) sign.
# Set Master Hostname
sudo hostnamectl set-hostname master-node
sudo vi /etc/hostname
and manualy edit the host name to master-node
hostnamectl set-hostname slave-node (For slave only)
# Install Docker CE (Optional?)
sudo su
## [WARNING IsDockerSystemdCheck]: detected "cgroupfs" as the Docker cgroup driver. The recommended driver is "systemd". Please follow the guide at https://kubernetes.io/docs/setup/cri/
error execution phase preflight: [preflight] Some fatal errors occurred:
## Set up the repository:
### Install packages to allow apt to use a repository over HTTPS
apt-get update && apt-get install apt-transport-https ca-certificates curl software-properties-common
### Add Docker’s official GPG key
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | apt-key add -
### Add Docker apt repository.
add-apt-repository \
"deb [arch=amd64] https://download.docker.com/linux/ubuntu \
$(lsb_release -cs) \
stable"
## Install Docker CE.
apt-get update && apt-get install docker-ce=18.06.2~ce~3-0~ubuntu
# Setup daemon.
cat > /etc/docker/daemon.json <<EOF
{
"exec-opts": ["native.cgroupdriver=systemd"],
"log-driver": "json-file",
"log-opts": {
"max-size": "100m"
},
"storage-driver": "overlay2"
}
EOF
mkdir -p /etc/systemd/system/docker.service.d
# Restart docker.
systemctl daemon-reload
systemctl restart docker
# Initialize Kubernetes in Master node
sudo kubeadm init --pod-network-cidr=10.244.0.0/16
OR (Ignore pre-flight errors)
sudo kubeadm init --pod-network-cidr=10.244.0.0/16 --ignore-preflight-errors=SystemVerification,FileContent--proc-sys-net-bridge-bridge-nf-call-iptables
sudo kubeadm init --pod-network-cidr=10.244.0.0/16 --ignore-preflight-errors=SystemVerification,FileContent--proc-sys-net-bridge-bridge-nf-call-iptables,FileAvailable--etc-kubernetes-manifests-kube-apiserver.yaml,FileAvailable--etc-kubernetes-manifests-kube-controller-manager.yaml,FileAvailable--etc-kubernetes-manifests-kube-scheduler.yaml,FileAvailable--etc-kubernetes-manifests-etcd.yaml
# Resetting nodes
sudo kubeadm reset
sudo rm -rf /etc/kubernetes/
# Manage kube for devkinetics account
mkdir -p $HOME/.kube
sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
sudo chown $(id -u):$(id -g) $HOME/.kube/config
# Map Nodes to Master. Only for worker nodes
Note: EXAMPLE ONLY! Refer to installation logs for the ACTUAL command.
kubeadm join 192.168.0.131:6443 --token nm1eht.q4yi53mco4n75m7j \
--discovery-token-ca
-cert-hash sha256:3a614688fff904414b5bc19f6cdfc0aab979ff23bb37e7935d0f917a130ab7e0
# To check if there are swaps running.Must retrun none.
- It takes several minutes to switch-off swap
sudo swapon -s
# Install Flannel
- Flannel is a simple and easy way to configure a layer 3 network fabric designed for Kubernetes.
sudo kubectl apply -f https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.yml
# Install weavework (Better)
kubectl apply -f "https://cloud.weave.works/k8s/net?k8s-version=$(kubectl version | base64 | tr -d '\n')"
Reference
https://vitux.com/install-and-deploy-kubernetes-on-ubuntu/
The connection to the server 192.168.0.131:6443 was refused - did you specify the right host or port?
Try... Check if you have internet connection
Try... Waiting, it takes at least a min
Try... switchooff all swap
sudo -i
swapoff -a
exit
strace -eopenat kubectl version
Try... check if there are running swaps
systemctl status kubelet
sudo swapon -s
sudo swapoff /dev/XXXX
Try... Reconfiguring config files
rm -fr $HOME/.kube
mkdir -p $HOME/.kube
sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
sudo chown $(id -u):$(id -g) $HOME/.kube/config
Try... Adding --server parameter
kubectl --server=192.168.0.131:6443 get pod
Try... checking the context setup
# View current configuration
$ kubectl config view
# View current Contexts
kubectl config get-contexts
# Set the cluster URL
kubectl config set-cluster cluster --server=http://192.168.0.131:6443
kubectl config set-cluster cluster --server=http://23.92.53.254:6443
# Map the updateded URL
kubectl config set-context kubernetes-admin@kubernetes --cluster=cluster
# Use the updateded context
kubectl config use-context kubernetes-admin@kubernetes
# Test
kubectl get nodes
Try... checking if the port is open
# Test port
sudo netstat -pnlt
sudo netstat -pnlt | grep 6443
Should return like this --> tcp6 0 0 :::6443 :::* LISTEN 4546/kube-apiserver
# Open the port
sudo apt-get install ufw
sudo ufw allow from any to any port 6443 proto tcp
sudo ufw allow 10248
systemctl status kubelet.service (No Error)
systemctl status kubelet (Error)
Check Logs
sudo journalctl -xeu kubelet
sudo systemctl status kubelet
Purge
sudo kubeadm reset
sudo apt-get purge kubeadm kubectl kubelet kubernetes-cni kube*
sudo rm -rf /etc/kubernetes/
sudo apt-get autoremove
sudo rm -rf ~/.kube