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

How to skip resources, compiler, surfire, install plugin in maven's default build process

When we want to use maven command line to upload zip type artifact to artifact repository then we don't want resources, compiler, surefire, install phases in maven process, only assembly would be enough. To skip particular phases go to each plugin's original website phase according to latest running plugin version download the same to our own project refer the skip phase configuration of particular phase, either it can be done command line or as part of the build-plugin-configuration. Example using POM.xml file <project> [...] <build> <plugins> <plugin> <groupId...

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 give permission to particular user to particular dir. or file in Linux

Permission error: ubuntu@ip-192-168-62-113:~/bbb/testing$ ls -ltrh total 4.0K -rwx------ 1 ubuntu ubuntu 70 Mar 18 09:43 test.sh ubuntu@ip-192-168-62-113:~/bbb/testing$ sudo su - abc abc@ip-192-168-62-113:~$ cat /home/ubuntu/jaydeep/testing/test.sh cat: /home/ubuntu/bbb/testing/test.sh: Permission denied Command - how to give permission to particular user to particular dir. or file ubuntu@ip-192-168-62-113:~/bbb/testing$ sudo setfacl -m u:abc:r test.sh ubuntu@ip-192-168-62-113:~/bbb/testing$ sudo su - abc abc@ip-192-168-62-113:~$ cat /home/ubuntu/bbb/testing/test.sh #!/bin/bash read -p "What is your name? " name echo "Welcome $name!" For the Directory setfacl -m u:userID:rwx /dir/subdir/ setfacl -m u:userID:rwx /d...