阿里云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 客户端部署命令 ,发布成功
相关推荐
庸子20 分钟前
Kubernetes调度器深度解析:从资源分配到亲和性策略的架构师之路
java·算法·云原生·贪心算法·kubernetes·devops
easy_coder22 分钟前
超越故障修复:从 Kubernetes POD 崩溃到 AI 驱动的运维认知重构
云原生·架构·kubernetes·云计算
油炸小波5 小时前
09-微服务原理篇(XXLJOB-幂等-MySQL)
android·mysql·微服务
周杰伦_Jay6 小时前
【电商微服务日志处理全方案】从MySQL瓶颈到大数据架构的实战转型
大数据·mysql·微服务·架构
mit6.8246 小时前
[Column] How Databricks Implemented Intelligent K8s Load Balancing
云原生·容器·kubernetes
春生野草6 小时前
启动Nginx
java·微服务·架构
whltaoin8 小时前
【微服务中间件】RabbitMQ 多平台安装搭建实践指南(Windows_macOS_Ubuntu_Docker 全场景)
微服务·中间件·消息队列·rabbitmq·多平台
拾忆,想起9 小时前
Dubbo线程模型全解析:提升微服务性能的底层逻辑
java·数据库·微服务·架构·dubbo·哈希算法
全栈工程师修炼指南12 小时前
奇技淫巧 | 巧用阿里云免费 ESA:获取用户真实IP地址与地理位置
数据库·阿里云·云计算
Apache Flink12 小时前
打造可编程可集成的实时计算平台:阿里云实时计算 Flink被集成能力深度解析
大数据·阿里云·flink·云计算