Встановлення K3s разом з Helm V3

K3s полегшенна й більш повноцінна (в порівняні з minikube) версія kubernetes для локального середовища розробки та тестування.
 
Все встановлення заключається в скачуванні бінарного файла:
curl -sfL https://get.k3s.io | sh -

Helm за замовченням шукає файл конфігурації в "$HOME/.kube/config" тоді як K3s розмістив його тут "/etc/rancher/k3s/k3s.yaml". Необхідно переконатись що поточний користувач має права доступу до цього файлу а також скопіювати або злінкувати конфіг файл.
Приклад присвоювання прав доступа до конфігураційного файлу:
sudo chown $(whoami):$(id -g -n) /etc/rancher/k3s/k3s.yaml
Приклад копіювання:
mkdir $HOME/.kube
sudo cp /etc/rancher/k3s/k3s.yaml $HOME/.kube/config
sudo chmod 644 $HOME/.kube/config
Приклад лінкування:
ln -s /etc/rancher/k3s/k3s.yaml $HOME/.kube/config 

Встановлюєм "local-path-storage":
kubectl apply -f https://raw.githubusercontent.com/rancher/local-path-provisioner/master/deploy/local-path-storage.yaml
kubectl get storageclass #Перевірочна команда
На вибір встановлюєм Helm версії 2 або 3(більш новіша)
Встановлюєм Helm version 2:
curl https://raw.githubusercontent.com/kubernetes/helm/master/scripts/get > install-helm.sh
chmod u+x install-helm.sh
./install-helm.sh 
Встановлюєм Helm version 3:
curl -fsSL -o get_helm.sh https://raw.githubusercontent.com/helm/helm/master/scripts/get-helm-3
chmod 700 get_helm.sh
./get_helm.sh
-- Note: Helm 3 no longer requires Tiller and the helm init command. Refer to the official documentation for details. 

Якщо вибір впав на Help v2, то далі необхідно створити ServiceAccount Tiller с ролью адміністратора кластера і зв'язати з Helm, адже Tiller відповідає за життєвий цикл екземпляра запущеного чарту, релізу:
kubectl create serviceaccount --namespace kube-system tiller
kubectl create clusterrolebinding tiller-cluster-rule --clusterrole=cluster-admin --serviceaccount=kube-system:tiller
helm init --service-account tiller 
Всі "додаткові" вищеописані кроки слугують для того, щоб уникнути виникнення помилки "##Bug "Error: Kubernetes cluster unreachable: Get "http://localhost:8080/version": dial tcp 127.0.0.1:8080: connect: connection refused" https://github.com/k3s-io/k3s/issues/489#issuecomment-536707176"
Тому, в кінці, залишилось добавити команди для видалення Helm якщо щось пішло нетак і є необхідність розпочати все з початку ;)
kubectl delete svc tiller-deploy -n kube-system
kubectl -n kube-system delete deploy tiller-deploy
kubectl -n kube-system delete serviceaccount tiller
kubectl -n kube-system delete clusterrolebinding tiller-cluster-rule
sudo rm -rf /usr/local/bin/helm
rm -rf .helm/
  

Коментарі

Популярні дописи з цього блогу

Минимальные требование для кластера Hadoop(with Spark)

Apache Spark - основные команды

Apache Spark Resource Management и модель приложений от YARN