0
点赞
收藏
分享

微信扫一扫

Kubernetes Nexus搭建Docker私有仓库

无愠色 2022-02-14 阅读 76

一.创建命名空间

1.命令方式

  • 通过命令方式创建一个名为nexus3的namespace

    kubectl create namespace nexus3

2.yaml方式

  • 通过yaml文件方式创建一个名为nexus3的namespace

    apiVersion: v1
    kind: Namespace
    metadata:
      name: nexus3
      labels:
        name: nexus3
    kubectl apply repo-nexus-ns.yaml 

二.创建PV/PVC

1.创建存储类

apiVersion: storage.k8s.io/v1
kind: StorageClass
metadata:
name: nexus3-nfs
provisioner: example.com/external-nfs
parameters:
server: 10.23.23.45 #nfs服务器IP地址
path: /usr1/nfs-share/nexus #nfs共享路径
readOnly: "false"
kubectl apply nexus_class.yaml

注意:/usr1/nfs-share/nexus #nfs共享路径 设置成777权限

2.创建PV

apiVersion: v1
kind: PersistentVolume
metadata:
name: nexus-pv
namespace: nexus3
spec:
capacity:
  storage: 600Gi
volumeMode: Filesystem
accessModes:
  - ReadWriteOnce
persistentVolumeReclaimPolicy: Recycle
storageClassName: nexus3-nfs
nfs:
  path: /usr1/nfs-share/nexus #nfs共享路径
  server: 10.23.23.45 #nfs服务器IP地址
kubectl apply nexus_pv.yaml

3.创建PVC

apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: nexus-pvc
namespace: nexus3
spec:
storageClassName: nexus3-nfs
accessModes:
  - ReadWriteOnce
resources:
  requests:
    storage: 600Gi
kubectl apply nexus_pvc.yaml

4.查看PV和PVC创建情况

kubectl get pv

三.K8S部署Nexus

1.创建配置文件

apiVersion: apps/v1
kind: Deployment
metadata:
labels:
  app: nexus3
name: nexus3
namespace: nexus3
spec:
replicas: 1
selector:
  matchLabels:
    app: nexus3
template:
  metadata:
    labels:
      app: nexus3
    name: nexus3
    namespace: nexus3
  spec:
    containers:
    - name: nexus3
      image: sonatype/nexus3
      imagePullPolicy: IfNotPresent
      ports:
      - containerPort: 8081
        protocol: TCP
        name: web
      - containerPort: 8082
        protocol: TCP
        name: docker-hosted
      - containerPort: 8083
        protocol: TCP
        name: docker-group
      volumeMounts:
      - name: nexus-data
        mountPath: /nexus-data
    volumes:
      - name: nexus-data
        persistentVolumeClaim:
          claimName: nexus-pvc

---
apiVersion: v1
kind: Service
metadata:
name: nexus3
namespace: nexus3
labels:
  app: nexus3
spec:
selector:
  app: nexus3
type: NodePort
sessionAffinity: None
ports:
  - name: web
    protocol: TCP
    port: 8081
    targetPort: 8081
    nodePort: 30005
  - name: docker-hosted
    protocol: TCP
    port: 8082
    targetPort: 8082
    nodePort: 30006
  - name: docker-group
    protocol: TCP
    port: 8083
    targetPort: 8083
    nodePort: 30007

2.执行命令使其生效

kubectl apply -f nexus.yaml 

四.配置Nexus服务器

1.查询初始密码

kubectl exec XXXXXXXX -n nexus3 -- cat /nexus-data/admin.password

2.修改初始密码

五.创建自定义docker私有仓库

1.创建docker本地仓库

举报

相关推荐

0 条评论