阿里云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 客户端部署命令 ,发布成功
相关推荐
fb_1234518 分钟前
从探针到权限:一篇吃透 Kubernetes 健康检查、RBAC 认证授权与 Dashboard 可视化管理
云原生·容器·kubernetes
mengge.cloud1 小时前
10-28-Kubernetes健康检查认证授权与Dashboard
云原生·容器·kubernetes
每天一道题2 小时前
微服务为什么会变慢?从 QPS、P99 到 Trace 与性能瓶颈
微服务·云原生·架构
利威尔xu3 小时前
Go IM 源码实战(11):token 只是个 HASH,多端互踢的顺序错了就踢错人
后端·微服务·面试·架构·golang
云-缩影4 小时前
我用阿里云 AI 动画方案跑通了剧本→视频流水线:ComfyUI + 百炼模型实测
人工智能·阿里云·云计算
SatanII4 小时前
Kubernetes 认证与授权详解:守护集群API访问安全
安全·贪心算法·kubernetes
每天一道题4 小时前
微服务为什么会发生级联故障?从 Timeout、Retry 到熔断、限流与 Backpressure
微服务·云原生·架构
闲云野鹤在人间5 小时前
头秃修炼手册:StorageClass+StatefulSet+ETCD 全套渡劫笔记
linux·数据库·笔记·云原生·kubernetes·etcd
艾伦_耶格宇6 小时前
【kubernetes - 1.28版本】-7 K8S命令
云原生·容器·kubernetes