docker镜像部署到k8s集群

      k8s部署docker集群需要拉取docker私服的镜像,docker私服harbor镜像已经有相应的镜像了,只需要在安装有k8s集群的机器上运行k8s的yaml文件就可以创建相应的对象资源,或者在bash的shell脚本中运行相应的命令。

1,创建secret资源指定连接docker私服

 

docker login ip:port --username=xxx 
kubectl create secret docker-registry regprivatesecret  --docker-server=ip:port --docker-username=xxx --docker-password=xxxxxx --docker-email=xxx@xxx.com

  使用kubectl get secret就可以查看刚才新建的secret资源

2,pod文件内容

    apiVersion: v1
    kind: Pod
    metadata:
      name: springboot-crm
      labels:
        app: crm
        env: test
    spec:
      imagePullSecrets:
        - name: regprivatesecret  指定secret资源
      nodeSelector:
        gpu: "true"
      containers:
        - image: ip:port/xhl/springboot-crm
          name: crm
          ports: 
          - name: http   命名
            containerPort: 7088   对外提供的监听端口
          command: [" java ","-Dloader.path=.,resources,lib","-jar","/spring-crm.jar","--spring.profiles.active=test"]  会覆盖dockerFile中的ENTRYPOINT命令
          volumeMounts:  挂载pod中的目录地址
          - mountPath: /tmp
            name: file-tmp
          env:
            - name: JAVA_OPTS
              value: -Xms512m,-Xmx512m
            - name: ACTIVE
              value: test
      volumes:
        - name: file-tmp
          emptyDir: {}  指定pod中的空临时目录,pod消失,目录消失

3,deployment文件内容

    apiVersion: apps/v1
    kind: Deployment
    metadata:
      name: springboot-crm
    spec:
      selector:
        matchLabels:
          app: crm   匹配pod的label标签
          env: test
      replicas: 1
      template:   指定pod的模板
        metadata:
          name: springboot-crm
          labels:
            app: crm
            env: test
        spec:
          imagePullSecrets:
            - name: regprivatesecret  
          nodeSelector:
            gpu: "true"
          containers:
            - image: ip:port/xhl/springboot-crm harbor地址34.92.172.25:8888
              name: crm
              env:
                - name: JAVA_OPTS
                  value: -Xms512m,-Xmx512m
                - name: ACTIVE
                  value: test

4,service文件内容

    apiVersion: v1
    kind: Service
    metadata:
      name: crm-lb
    spec:
      type: LoadBalancer   负载均衡service
      ports:
      - name: http
        port: 7088
        targetPort: http   指定pod的端口
      selector:
        app: crm   指定pod的label

5,在集群中运行kubectl create -f ./pod.yaml -f ./deployment.yaml -f ./service.yaml,要是在Jenkins类似的CI/CD工具中整合k8s环境,以及运行devops工具时可以放到bash的shell里

然后从service对外开放的ip和端口就可以访问相应容器中提供的服务

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值