Skip to main content

Setting up Helm chart for K8s cluster

Helm is a powerful and flexible package-management and operations tool for Kubernetes.

There are two parts to Helm: The Helm client (helm) and the Helm server (Tiller).

https://helm.sh/docs/using_helm/#installing-helm

1) ssh to your k8s master node

2) Download the helm client from the url : https://github.com/helm/helm/releases

Linux amd64 (checksum)
# wget https://get.helm.sh/helm-v2.15.1-linux-amd64.tar.gz

# tar -xzvf helm-v2.15.1-linux-amd64.tar.gz
# mv linux-amd64/helm /usr/local/bin
# which helm
# helm version --client --short

3) Now we need to initialize the helm server (Tiller) in the k8s cluster.

For this,

 > first we need to create a serviceaccount called tiller in the kube-system namespace.
 > then create a clusterrolebinding called tiller and attach the clusterrole cluster-admin to the serviceaccount tiller.

 # kubectl -n kube-system create serviceaccount tiller
 # kubectl create clusterrolebinding tiller --clusterrole cluster-admin --serviceaccount=kube-system:tiller

ubuntu@namenode:~$ kubectl get -n kube-system serviceaccount tiller
NAME     SECRETS   AGE
tiller   1         35m

ubuntu@namenode:~$ kubectl get -n kube-system clusterrole cluster-admin
NAME            AGE
cluster-admin   7d23h

 > Finally initialize the helm with the below command:

 # helm init --service-account tiller


ubuntu@namenode:~$ kubectl -n kube-system get clusterrolebinding,deploy,serviceaccount,pods,replicasets | grep tiller
clusterrolebinding.rbac.authorization.k8s.io/tiller           147m
deployment.apps/tiller-deploy   1/1     1            1           146m
serviceaccount/tiller                               1         51m
pod/tiller-deploy-7b875fbf86-gqn9g                  1/1     Running   0          41m
replicaset.apps/tiller-deploy-7b875fbf86   1         1         1       146m


ubuntu@namenode:~$ helm version --short
Client: v2.15.1+gcf1de4f
Server: v2.15.1+gcf1de4f

#############################################

Now start installing the packages that you want in the k8s cluster.

ubuntu@namenode:~$ helm search  traefik
NAME          CHART VERSION APP VERSION DESCRIPTION                                               
stable/traefik 1.78.4        1.7.14      A Traefik based Kubernetes ingress controller with Let's ...

###########################################

ubuntu@namenode:~$ helm search nginx-ingress
NAME                CHART VERSION APP VERSION DESCRIPTION                                               
stable/nginx-ingress 1.24.4        0.26.1      An nginx Ingress controller that uses ConfigMap to store ...
stable/nginx-lego    0.3.1                    Chart for nginx-ingress-controller and kube-lego

###########################################

ubuntu@namenode:~$ helm search jenkins
NAME          CHART VERSION APP VERSION DESCRIPTION                                               
stable/jenkins 1.7.9        lts        Open source continuous integration server. It supports mu...

###########################################

ubuntu@namenode:~$ helm inspect stable/jenkins | head
apiVersion: v1
appVersion: lts
description: Open source continuous integration server. It supports multiple SCM tools
  including CVS, Subversion and Git. It can execute Apache Ant and Apache Maven-based
  projects as well as arbitrary scripts.
home: https://jenkins.io/
icon: https://wiki.jenkins-ci.org/download/attachments/2916393/logo.png
maintainers:
- email: lachlan.evenson@microsoft.com
  name: lachie83
ubuntu@namenode:~$


That is all cheers ;-)

Comments

Popular posts from this blog

Password reset too simplistic/systematic issue

Some time when we try to reset the password of our user in linux it will show as simple and systematic as below: BAD PASSWORD: it is too simplistic/systematic no matter how hard password you give it will show the same. Solution: ######### Check if your password is Ok with the below command, jino@ndz~$ echo 'D7y8HK#56r89lj&8*&^%&^%#56rlKJ!789l' | cracklib-check D7y8HK#56r89lj&8*&^%&^%#56rlKJ!789l: it is too simplistic/systematic Now Create a password with the below command : jino@ndz~$ echo $(tr -dc '[:graph:]' 7\xi%!W[y*S}g-H7W~gbEB4cv,9:E:K; You can see that this password will be ok with the cracklib-check. jino@ndz~$ echo '7\xi%!W[y*S}g-H7W~gbEB4cv,9:E:K;' | cracklib-check                 7\xi%!W[y*S}g-H7W~gbEB4cv,9:E:K;: OK Thats all, Thanks.

Nginx Ingress controller setup in K8S MultiNode Cluster with HA-Proxy as External LB

https://github.com/nginxinc/kubernetes-ingress/blob/master/docs/installation.md Pre-requisites: ############### >> K8s cluster setup with 1 Master and 2 Worker nodes. >> Deployed an application with Deployment name "client-sb" >> Also you need to create an HA-proxy server by spinning an Ec2 instance. After login the Ha-proxy server. # yum install haproxy # vi /etc/haproxy/haproxy.cfg delete everything after the global and defaults starting from "Main front-end which proxys to the backend" paste the below code in the end of the file: --------------------- frontend http_front   bind *:80   stats uri /haproxy?stats   default_backend http_back backend http_back   balance roundrobin   server kube 10.0.1.14:80   server kube 10.0.1.12:80 --------------------- # systemctl status haproxy # systemctl enable haproxy # systemctl start haproxy 1. Create a Namespace, a SA, the Default Secret, the Customization Confi...

Running K8s cluster service kubelet with Swap Memory Enabled

For enabling swap memory check the below link : https://jinojoseph.blogspot.com/2019/10/enable-swap-memory-using-swapfile-in.html # sudo vi /etc/systemd/system/kubelet.service.d/10-kubeadm.conf Add the KUBELET_EXTRA_ARGS line as below: ---------------------------------------- Environment="KUBELET_EXTRA_ARGS=--fail-swap-on=false" ExecStart= ExecStart=/usr/bin/kubelet $KUBELET_KUBECONFIG_ARGS $KUBELET_CONFIG_ARGS $KUBELET_KUBEADM_ARGS $KUBELET_EXTRA_ARGS Now kubelet.service changed on disk. Run 'systemctl daemon-reload' to reload units # sudo systemctl daemon-reload # sudo systemctl restart kubelet # sudo systemctl status kubelet That is all cheers :p