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