K8s部署Nexus3管理Docker镜像

48 篇文章 2 订阅

K8S nexus3.yaml文件

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

镜像源服务器操作:

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

master管理服务器操作:

kubectl apply -f nexus3.yaml.yaml

注释:

- 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
密码看提示路径,进入路径后文件中则为密码

设置私有仓库步骤:

1、设置
2、Repositories
3、Create repository
4、docker(hosted)

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

1、Name                              (自定义名称)
2、http   8087                       (勾选http,填写内部上传端口)
3、Docker Registry API Support       (勾选 Allow clients to use the V1 API to interact with this repository)
4、Create repository                  (创建)

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

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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Kubernetes部署 Docker 镜像,需要先创建一个 Deployment 对象来定义你的应用程序的期望状态,然后使用 Service 对象来暴露该 Deployment。 以下是一些基本步骤: 1. 构建 Docker 镜像并将其上传到一个可公开访问的镜像仓库中(如 Docker Hub)。 2. 创建一个 Deployment 对象,定义你的应用程序的期望状态和副本数。你可以使用 kubectl create 命令,也可以编写一个 YAML 文件来创建 Deployment。 3. 创建一个 Service 对象来暴露 Deployment,以便其他应用程序可以访问它。这可以通过 kubectl expose 命令或编写一个 YAML 文件来完成。 4. 确保你的 Kubernetes 集群中已经正确配置了 Docker 运行时,并且已经安装了 kubectl 命令行工具。 5. 运行 kubectl apply 命令来部署你的应用程序。 以下是一个简单的 YAML 文件示例,可以用于创建一个 Deployment 和一个 Service: ``` apiVersion: apps/v1 kind: Deployment metadata: name: my-app spec: replicas: 3 selector: matchLabels: app: my-app template: metadata: labels: app: my-app spec: containers: - name: my-app image: my-docker-image:latest ports: - containerPort: 8080 --- apiVersion: v1 kind: Service metadata: name: my-app-service spec: selector: app: my-app ports: - name: http port: 80 targetPort: 8080 ``` 在这个示例中,我们假设已经将 Docker 镜像上传到 Docker Hub 中,并通过 my-docker-image:latest 引用它。我们定义了一个名为 my-app 的 Deployment,期望有三个副本,使用容器端口 8080。然后,我们创建了一个名为 my-app-service 的 Service,它将流量路由到 Deployment 中的容器端口 8080。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值