Skip to main content

Install Prometheus on AWS EKS using Helm

  • Create Namespace for Prometheus

                        
    kubectl create ns prometheus
                        
                    
  • Persistent Storage

    We'll store Prometheus data on AWS EBS as persistent storage, for that create we'll create storage class and persitent volument claim. We need to create 2 SC and PVC for 2 different component of Prometheus - Server and AlertManager.

    StorageClass - AlertManager

                        
    apiVersion: storage.k8s.io/v1
    kind: StorageClass
    metadata:
      name: prometheus-alertmanager
    provisioner: kubernetes.io/aws-ebs
    parameters:
      type: gp2
      fsType: ext4
    allowVolumeExpansion: true
                        
                    

    StorageClass - Server

                        
    apiVersion: storage.k8s.io/v1
    kind: StorageClass
    metadata:
      name: prometheus-server
    provisioner: kubernetes.io/aws-ebs
    parameters:
      type: gp2
      fsType: ext4
    allowVolumeExpansion: true
                        
                    

    Persistent Volume Claim - AlertManager

                        
    apiVersion: v1
    kind: PersistentVolumeClaim
    metadata:
      name: prometheus-alertmanager
      namespace: prometheus
      labels:
        app: prometheus-alertmanager
    spec:
      storageClassName: prometheus-alertmanager
      resources:
        requests:
          storage: 50Gi
      accessModes:
        - ReadWriteOnce
                        
                    

    Persistent Volume Claim - Server

                        
    apiVersion: v1
    kind: PersistentVolumeClaim
    metadata:
      name: prometheus-server
      namespace: prometheus
      labels:
        app: prometheus-server
    spec:
      storageClassName: prometheus-server
      resources:
        requests:
          storage: 50Gi
      accessModes:
        - ReadWriteOnce
                        
                    
  • Install using Helm

    In this command we've set few values like

    namespace, service type, storageclass, PVC and its size as created in previous type
                            
    helm install prometheus stable/prometheus \
    --namespace prometheus \
    --set alertmanager.persistentVolume.storageClass="prometheus-alertmanager",server.persistentVolume.storageClass="prometheus-server",alertmanager.persistentVolume.existingClaim="prometheus-alertmanager", server.persistentVolume.existingClaim="prometheus-server",server.service.type="LoadBalancer"
                            
                        
  • Verify the installation
                        
    helm list -n prometheus
    kubectl get sc -n prometheus
    kubectl get po -n prometheus
    kubectl get svc -n prometheus
                        
                    

Comments

Popular posts from this blog

Install AWS CLI on Ubuntu localhost using Ansible Playbook

Install AWS CLI on Ubuntu localhost using Ansible Playbook --- - hosts: localhost tasks: - name: Installing Unzip package package: name: unzip state: present when: ansible_facts['os_family'] == "Debian" become: true - name: Create awscli directory in home directory file: path: ~/awscli state: directory mode: '0755' - name: Download bundled installer zip file get_url: url: https://s3.amazonaws.com/aws-cli/awscli-bundle.zip dest: ~/awscli/awscli-bundle.zip - name: Extract zip file unarchive: src: ~/awscli/awscli-bundle.zip dest: ~/awscli - name: Run install command shell: /home/ubuntu/awscli/awscli-bundle/install -i /usr/local/aws -b /usr/local/bin/aws become: true Same script is also avail...

How to clone Github repository using SSH

Run ssh-keygen Upload ssh public key to github account curl -u "gitUsername:password" --data '{"title":"keyName","key":"'"$(cat ~/.ssh/id_rsa.pub)"'"}' https://api.github.com/user/keys Sample output of ssh public key upload command { "id": 1234567890, "key": "ssh-rsa aaaaaaaaaaaaaaaaaaaa/dddd/+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa", "url": "https://api.github.com/user/keys/123456...

Add coding block in HTML using Code Tag

<html> <style> pre code { background-color: #eee; border: 1px solid #999; display: block; padding: 20px; color: black; } code{ color: blue; } <style> <body> <code> #!/bin/bash read -p "What is your name ?" name echo "Welcome $name!" <code> <body> <html> Output of this code would be as below #!/bin/bash read -p "What is your name ?" name echo "Welco...