阿里云k8s部署微服务yaml和Dockerfile文件脚本

  1. Dockerfile 文件

    复制代码
    #基础镜像,如果本地仓库没有,会从远程仓库拉取 openjdk:8
    FROM registry.cn-hangzhou.aliyuncs.com/dockerhub_mirror/java:21-anolis
    #暴露端口
    EXPOSE 8080
    #容器中创建目录
    RUN mkdir -p /usr/local/cenobitor
    #编译后的jar包copy到容器中创建到目录内12
    COPY target/codeup-demo-0.0.1.jar /usr/local/cenobitor/codeup-demo-0.0.1.jar
    #指定容器时区
    RUN rm -f /etc/localtime \
    && ln -sv /usr/share/zoneinfo/Asia/Shanghai /etc/localtime \
    && echo "Asia/Shanghai" > /etc/timezone
    #指定容器启动时要执行的命令
    ENTRYPOINT ["java","-Dserver.port=8080","-jar","/usr/local/cenobitor/codeup-demo-0.0.1.jar"]
  2. k8s yaml文件

复制代码
   apiVersion: v1
   kind: Service
   metadata:
     name: codeup-demo
     namespace: scp
     labels:
       app: codeup-demo
   spec:
     type: ClusterIP #NodePort
     ports:
       - name: 8080-8080-tcp
         port: 8080
         protocol: TCP
         targetPort: 8080
         #nodePort: 31080 #service对外开放端口
     selector:
       app: codeup-demo
   ---
   apiVersion: apps/v1
   kind: Deployment #对象类型
   metadata:
     name: codeup-demo #名称
     namespace: scp
     labels:
       app: codeup-demo #标注
   spec:
     replicas: 1 #运行容器的副本数,修改这里可以快速修改分布式节点数量
     progressDeadlineSeconds: 600 #在Deployment 在进度卡住6分钟后报告
     minReadySeconds: 10 #Pod被认为是可用状态的最小秒数。默认是0
     strategy:
       rollingUpdate:
         maxSurge: 1 #升级过程中激增Pod的最大数量
         maxUnavailable: 0 #升级过程中不可用Pod的最大数量
       type: RollingUpdate
     selector:
       matchLabels:
         app: codeup-demo
     template:
       metadata:
         labels:
           app: codeup-demo
       spec:
         containers: #docker容器的配置
           - name: codeup-demo
             #image: shpl-acr-registry.cn-shanghai.cr.aliyuncs.com/scp-uat/codeup-demo:$IMG_TAG # pull镜像的地址 ip:prot/dir/images:tag
             image: ${image}
             imagePullPolicy: Always #pull镜像时机,
             ports:
               - containerPort: 8080 #容器对外开放端口,需与springboot配置文件一致
             env:
               - name: aliyun_logs_catalina
                 value: stdout
             volumeMounts:
               - name: time-config
                 mountPath: /etc/localtime
                 readOnly: true
               #- name: volume-logs
               #  mountPath: /logs
               #  subPath: logs
             resources:
               limits:
                 cpu: 50m
                 memory: 1Gi
               requests:
                 cpu: 10m
                 memory: 200Mi
         #从私有仓库拉取镜像凭证
         imagePullSecrets:
           - name: scp-acr-temp #scp-acr-secret
         nodeSelector:
           env: scp  # 节点标签的键值对
         volumes:
           - name: time-config
             hostPath:
               path: /usr/share/zoneinfo/Asia/Shanghai
   #        - name: volume-logs
   #          persistentVolumeClaim:
   #            claimName: rz-dt-nas-volume-claim-real
  1. 执行kubectl 客户端部署命令 ,发布成功
相关推荐
lisin-lee-cooper4 小时前
简单聊聊 OpenFeign 框架源码
java·微服务
风流 少年5 小时前
Spring AI 2.0:阿里云百炼平台(智能体应用)
redis·spring·阿里云
王da魔5 小时前
部署Kubernetes
云原生·容器·kubernetes
RobinDevNotes5 小时前
K8s+Megatron-LM+vLLM打通超大模型训练全链路
人工智能·kubernetes
池以遇6 小时前
云原生高级——kubernetes的部署
云原生·容器·kubernetes
UseLessQQ6 小时前
云计算k8s集群部署
java·kubernetes·云计算
智码看视界7 小时前
Day57-K8s核心概念速通:Pod、Deployment、Service与Ingress
云原生·容器·kubernetes·k8s·ingress·java后端·deployment
lxw20230271167 小时前
k8s安装部署(利用ansible)
linux·kubernetes·ansible
Stewie121388 小时前
K8s集群部署
云原生·容器·kubernetes
.柒宇.8 小时前
使用 cri-docker 搭建 Kubernetes 集群完整教程(v1.36.3)
docker·容器·kubernetes·k8s集群安装