阿里云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 客户端部署命令 ,发布成功
相关推荐
小章UPUP21 小时前
Kubernetes (K8s) 与 Podman 的比较
容器·kubernetes·podman
农民工老王1 天前
K8s 1.31 私有化部署实战:从 Calico 崩溃到 NFS 挂载失败的排坑全记录
云原生·kubernetes
广州中轴线1 天前
OpenStack on Kubernetes 生产部署实战(十四)
kubernetes·智能路由器·openstack
像少年啦飞驰点、1 天前
从零开始学 RabbitMQ:小白也能懂的消息队列实战指南
java·spring boot·微服务·消息队列·rabbitmq·异步编程
深圳行云创新1 天前
微服务架构引入 AI 后,怎么统一研发和运维的标准规范?
人工智能·微服务·架构
是阿楷啊1 天前
Java大厂面试场景:音视频场景中的Spring Boot与微服务实战
spring boot·redis·spring cloud·微服务·grafana·prometheus·java面试
天才奇男子1 天前
HAProxy高级功能全解析
linux·运维·服务器·微服务·云原生
_运维那些事儿2 天前
VM环境的CI/CD
linux·运维·网络·阿里云·ci/cd·docker·云计算
凯子坚持 c2 天前
C++基于微服务脚手架的视频点播系统---客户端(4)
数据库·c++·微服务
人间打气筒(Ada)2 天前
k8s:CNI网络插件flannel与calico
linux·云原生·容器·kubernetes·云计算·k8s