Skip to main content

Nexus installation on EKS

  • Create nexus namespace
  •                         
    apiVersion: v1
    kind: Namespace
    metadata:
      name: nexus
                            
                        
  • Create storage class for nexus to store data on AWS EBS
  •                         
    apiVersion: storage.k8s.io/v1
    kind: StorageClass
    metadata:
      name: nexus
    provisioner: kubernetes.io/aws-ebs
    parameters:
      type: gp2
      fsType: ext4
    allowVolumeExpansion: true  
                            
                        
  • Create persistent volume claim
  •                         
    apiVersion: v1
    kind: PersistentVolumeClaim
    metadata:
      name: nexus
      namespace: nexus
      labels:
        app: nexus
    spec:
      storageClassName: nexus
      resources:
        requests:
          storage: 50Gi
      accessModes:
        - ReadWriteOnce 
                            
                        
  • Create deployment for pod, replicaset and deployment itself.
    Since, nexus's docker registry accessible on separate ports, hence as per requirement add number of ports for docker registry.
  •                     
    apiVersion: apps/v1beta1
    kind: Deployment
    metadata:
      name: nexus
      namespace: nexus
    spec:
      replicas: 1
      template:
        metadata:
          name: nexus
          labels:
            app: nexus
        spec:
          securityContext:
            fsGroup: 2000
          containers:
          - image: sonatype/nexus3:latest
            name: nexus
            imagePullPolicy: IfNotPresent
            resources:
              requests:
                memory: 1Gi
                cpu: 500m
              limits:
                  memory: 1Gi
                  cpu: 500m
            ports:
              - containerPort: 8081
                protocol: TCP
                name: nexus-ui
              - containerPort: 8082
                protocol: TCP
                name: docker-1
            volumeMounts:
              - name: nexus-data
                mountPath: /nexus-data
          volumes:
            - name: nexus-data
              persistentVolumeClaim:
                claimName: nexus
            
                        
                    
  • Create service to expose nexus UI and docker registry ports
  •                     
    apiVersion: v1
    kind: Service
    metadata:
      name: nexus
      namespace: nexus
      labels:
        app: nexus
    spec:
      type: LoadBalancer
      ports:
        - name: nexus-ui
          port: 8081
          protocol: TCP
          targetPort: 8081
        - name: docker-1
          port: 8082
          protocol: TCP
          targetPort: 8082
      selector:
        app: nexus
    
                        
                    

Verify all resources status

                    
kubectl get ns
kubectl get sc -n nexus
kubectl get pvc -n nexus
kubectl get pv -n nexus
kubectl get po -n nexus
kubectl get svc -n nexus
                
            

Comments

Popular posts from this blog

Install Python3.7 on Ubuntu localhost using Ansible Playbook

Install Python3.7 on Ubuntu localhost using Ansible Playbook --- - hosts: localhost tasks: - name: Upgrade all packages to the latest version apt: name: "*" state: latest when: ansible_facts['os_family'] == "Debian" - name: Install software-properties-common package: name: software-properties-common state: present when: ansible_facts['os_family'] == "Debian" - name: Add repository apt_repository: repo: ppa:deadsnakes/ppa state: present when: ansible_facts['os_family'] == "Debian" - name: Again Upgrade all packages to the latest version apt: name: "*" state: latest when: ansible_facts['os_family'] == "Debian" - name: Install python3.7 package: name: python3.7...

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...

How to read user's input in Bash Script

Create shell script file as below: #!/bin/bash echo "Enter your name!" read name echo "Welcome to Mars $name" Make script file executable chmod u+x test.sh Run script sh test.sh Output of the script: Enter your name! Rectangle Welcome to Mars Rectangle