0 Votes

Kubernetes

Last modified by Jeff McDonald on 2021/11/17 07:39

These are some notes on how to install Kubernetes...

Install Docker

sudo yum -y install docker-engine
sudo systemctl enable docker
sudo systemctl start docker

Install Kubernetes

sudo yum -y install kubeadm

Modify Firewall Rules

sudo firewall-cmd --add-masquerade --permanent
sudo firewall-cmd --add-port=10250/tcp --permanent
sudo firewall-cmd --add-port=8472/udp --permanent
#master node only:
sudo firewall-cmd --add-port=6443/tcp --permanent
sudo systemctl restart firewalld
sudo iptables -P FORWARD ACCEPT

Oracle Container Registry

From browser, login to container-registry.oracle.com, click 'Kubernetes' and accept the license.

sudo docker login container-registry.oracle.com/kubernetes
Username: jeff@mcdonald.net               
Password: *********

Configure Kubernetes

sudo kubeadm-setup.sh up

Use 'down' to reset Kubernetes.

mkdir -p $HOME/.kube
sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
sudo chown $(id -u):$(id -g) $HOME/.kube/config
export KUBECONFIG=$HOME/.kube/config
echo 'export KUBECONFIG=$HOME/.kube/config' >> $HOME/.bashrc

To untain the master node so pods will run on it:

kubectl taint nodes --all node-role.kubernetes.io/master-

Enable Dashboard

To allow external dashboard access

kubectl create clusterrolebinding NAME --clusterrole=cluster-admin --user=system:anonymous

Create 'dashboard-adminuser.yaml'.

apiVersion: v1
kind: ServiceAccount
metadata:
  name: admin-user
  namespace: kube-system
---
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRoleBinding
metadata:
  name: admin-user
roleRef:
  apiGroup: rbac.authorization.k8s.io
  kind: ClusterRole
  name: cluster-admin
subjects:
- kind: ServiceAccount
  name: admin-user
  namespace: kube-system

kubectl apply -f dashboard-adminuser.yaml

Browser Login:

https://<host>:6443/api/v1/namespaces/kube-system/services/https:kubernetes-dashboard:/proxy/

To generate token for login:

kubectl -n kube-system describe secret $(kubectl -n kube-system get secret | grep admin-user | awk '{print $1}')

Install Helm

Do not run as root!

curl -L https://git.io/get_helm.sh | bash
helm init