K8s部署Nexus3

K8S nexus3.yaml文件node

kind: Service
apiVersion: v1
metadata:
  name: qian-nexus3
  namespace: default
  labels:
    app: qian-nexus3
spec:
  type: NodePort
  selector:
    app: qian-nexus3
  ports:
  #服务端口,内部端口,经过暴露端口登陆的最终会转到内部
    - port: 8081
      name: rest
      targetPort: 8081
      protocol: TCP
      #登陆平台暴露的端口
      nodePort: 31234
  #服务端口,内部端口
    - port: 8087
      name: rest1
      targetPort: 8087
      protocol: TCP
      #docker login暴露的端口
      nodePort: 31235
---

apiVersion: apps/v1
kind: Deployment
metadata:
  name: qian-nexus3
  namespace: default
spec:
  replicas: 1
  minReadySeconds: 120
  strategy:
    type: RollingUpdate
    rollingUpdate:
      maxSurge: 1 
      maxUnavailable: 1 
  selector:
    matchLabels:
      app: qian-nexus3
  template:
    metadata:
      labels:
        app: qian-nexus3
    spec:
      containers:
      - name: qian-nexus3
        image: sonatype/nexus3:latest
        imagePullPolicy: Always
        resources:
          limits:
            cpu: 1024m
            memory: 2048Mi
          requests:
            cpu: 50m
            memory: 200Mi
        livenessProbe:
          failureThreshold: 3
          initialDelaySeconds: 180
          periodSeconds: 10
          successThreshold: 1
          tcpSocket:
            port: 8081
          timeoutSeconds: 2
        ports:
        - containerPort: 8081
          name: rest
          protocol: TCP
        - containerPort: 8087
          name: rest1
          protocol: TCP
        volumeMounts:
        - mountPath: /nexus-data
          name: dev
        securityContext:
          privileged: true
      dnsPolicy: ClusterFirst
      nodeName: node-2
      volumes:
      - hostPath:
          path: /srv/nexus/qian-data
        name: dev

镜像源服务器操做:nginx

mkdir -p  /srv/nexus/qian-data
chmod 777 /srv/nexus/qian-data
chown 200 /srv/nexus/qian-data

master管理服务器操做:docker

kubectl apply -f nexus3.yaml.yaml

注释:api

- containerPort: 8087    ##容器端口
      name: rest1
      protocol: TCP
-----------------------------------
    - port: 8087         ##容器端口
      name: rest1
      targetPort: 8087   
      protocol: TCP
      nodePort: 31235     ##集群外部访问Service,Pod提供访问接入端口,仅在type为NodePort时才须要指定.

访问nexus3服务器

http://192.168.123.12:31234
登陆用户admin
密码看提示路径,进入路径后文件中则为密码

设置私有仓库步骤:app

一、设置
二、Repositories
三、Create repository
四、docker(hosted)

继上一步配置步骤docker(hosted)tcp

一、Name                              (自定义名称)
二、http   8087                       (勾选http,填写内部上传端口)
三、Docker Registry API Support       (勾选 Allow clients to use the V1 API to interact with this repository)
四、Create repository                  (建立)

测试本地推镜像(哪台须要dockers login哪台就配置)ide

vi /lib/systemd/system/docker.service
修改成:镜像源ip和上传端口
ExecStart=/usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock   --insecure-registry=192.168.123.12:31235
sudo systemctl daemon-reload
sudo systemctl restart docker
docker login IP:31234
用户名:
密码:

docker打标签:测试

sudo docker tag  300e315adb2f  192.168.123.12:31235/nginx:v5.6
docker login IP:8087
帐号
密码

docker push   192.168.123.12:31235/nginx:v5.6
docker pull   192.168.123.12:31235/nginx:v5.6

注意:当使用yaml调用nexus私有仓库镜像时,须要进行Docker registries认证才能push否则没法使用
kubectl create secret docker-registry regsecret --docker-server=192.168.123.12:8087 --docker-username=admin --docker-password=12345 --docker-email=admin@ctsi.com.cn --namespace=defaultthis

相关文章
相关标签/搜索