阿里云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 客户端部署命令 ,发布成功
相关推荐
Mr_sun.11 小时前
微服务框架课程
微服务·云原生·架构
挖土机_00812 小时前
Kubernetes 1.35 原地扩容(In-Place Pod Resize)完整解析:机制、差异与实战示例
docker·kubernetes
翼龙云_cloud12 小时前
阿里云渠道商:如何使用弹性伸缩来实现计算资源的弹性配置?
服务器·阿里云·云计算
羊羊羊i16 小时前
使用Informer监听K8s资源
云原生·容器·kubernetes
lhrimperial16 小时前
企业智能知识库助手落地实践:从RAG到Multi-Agent
java·spring cloud·微服务·系统架构·知识图谱
VermiliEiz17 小时前
二进制文件部署k8s方式(5)
云原生·容器·kubernetes
2301_8107463118 小时前
CKA冲刺40天笔记 - day24 Kubernetes Clusterrole 和 Clusterrole Binding
笔记·容器·kubernetes
indexsunny19 小时前
互联网大厂Java面试实战:Spring Boot与微服务在电商场景的应用解析
java·spring boot·redis·微服务·kafka·gradle·maven
ICT董老师20 小时前
通过kubernetes部署nginx + php网站环境
运维·nginx·云原生·容器·kubernetes·php
原神启动120 小时前
K8S(八)—— Kubernetes Pod 资源限制 + 探针(Probe)解析
云原生·容器·kubernetes