- Create nexus namespace
apiVersion: v1
kind: Namespace
metadata:
name: nexus
apiVersion: storage.k8s.io/v1
kind: StorageClass
metadata:
name: nexus
provisioner: kubernetes.io/aws-ebs
parameters:
type: gp2
fsType: ext4
allowVolumeExpansion: true
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: nexus
namespace: nexus
labels:
app: nexus
spec:
storageClassName: nexus
resources:
requests:
storage: 50Gi
accessModes:
- ReadWriteOnce
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
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
Post a Comment