java 在k8s中的部署流程

1.写Docker文件

复制代码
FROM ubuntu:22.04

ENV LANG='C.UTF-8' LC_ALL='C.UTF-8'

RUN apt-get update \
    && DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends tzdata curl ca-certificates fontconfig locales binutils \
    && echo "C.UTF-8 UTF-8" >> /etc/locale.gen \
    && locale-gen C.UTF-8 \
    && rm -rf /var/lib/apt/lists/*

ENV JAVA_HOME=/opt/java/dragonwell-17.0.14.0.15+7-GA \
    PATH="/opt/java/dragonwell-17.0.14.0.15+7-GA/bin:$PATH" \ 
    JAVA_VERSION=jdk-17.0.14.0.15+7-GA

ADD Alibaba_Dragonwell_Standard_17.0.14.0.15.7_x64_linux.tar.gz /opt/java
#基础镜像完成

WORKDIR /app
ADD autopick.tar.gz /opt/
ADD qt5.14.2.tar.gz /opt/qt/
COPY autoPointPick  /opt/autopick/binR 
ENV PATH=/opt/autopick/binR:$PATH \ 
	LD_LIBRARY_PATH=/opt/autopick/lib/libR:/opt/autopick/lib/systemlib:/opt/qt/qt5.14.2/gcc_64/lib:/opt/qt/qt5.14.2/gcc_64/plugins
ENV JAVA_OPTS="-Xms128M -Xmx1G" \
    SPRING_PROFILE="default" \
    NACOS_SERVER_ADDR="nacos-server:8848" \
    NACOS_NAMESPACE="public" \
    NACOS_DISCOVERY_ENABLE="true" \
    NACOS_CONFIG_ENABLE="true" \
    NACOS_CONFIG_PREFIX="oa" \
    NACOS_FILE_EXTENSION="yaml"
COPY oa.jar /app/oa.jar
CMD java ${JAVA_OPTS} -jar /app/oa.jar \
      --spring.profiles.active=${SPRING_PROFILE} \
      --spring.cloud.nacos.discovery.enabled=${NACOS_DISCOVERY_ENABLE} \
      --spring.cloud.nacos.discovery.server-addr=${NACOS_SERVER_ADDR} \
      --spring.cloud.nacos.discovery.namespace=${NACOS_NAMESPACE} \
      --spring.cloud.nacos.config.enabled=${NACOS_CONFIG_ENABLE} \
      --spring.cloud.nacos.config.server-addr=${NACOS_SERVER_ADDR} \
      --spring.cloud.nacos.config.namespace=${NACOS_NAMESPACE} \
      --spring.cloud.nacos.config.prefix=${NACOS_CONFIG_PREFIX} \
      --spring.cloud.nacos.config.file-extension=${NACOS_FILE_EXTENSION}

2.构建镜像,并导出

复制代码
docker build -t oa:20250709 .


docker save -o oa.tar  oa:20250709

3.在k8s主节点执行的命令

复制代码
docker load -i oa.tar
docker images
docker tag e5ce39743840 cr.registry.res.sgmc.sgcc.com.cn/beijing/oa:20250709
docker登录 
docker login --username=oa-1666080388355 cr.registry.res.sgmc.oacc.com.cn
docker push cr.registry.res.sgmc.sgcc.com.cn/beijing/oa:20250709

4.编写k8s yaml文件

复制代码
apiVersion: apps/v1
kind: Deployment
metadata:
  name: oa
  namespace: default
  labels:
    app: oa
spec:
  replicas: 1
  selector:
    matchLabels:
      app: oa
  template:
    metadata:
      labels:
        app: oa   
    spec:
      affinity:
        nodeAffinity:
          requiredDuringSchedulingIgnoredDuringExecution:
            nodeSelectorTerms:
              - matchExpressions:
                  - key: kubernetes.io/hostname
                    operator: In
                    values:
                      - bjdc-1.220.20.22.38
      containers:
      - name: aa
        image: cr.registry.res.sgmc.oacc.com.cn/beijing/oa:20250709
        resources: 
          requests: 
            cpu: "500m"
            memory: "5Gi"
          limits: 
            cpu: "500m"
            memory: "10Gi"
        env:
        - name: SPRING_PROFILE
          value: prod
        - name: NACOS_SERVER_ADDR
          value: nacos:8848
        ports:
        - containerPort: 80
        volumeMounts:
        - name: local-storage
          mountPath: /oss
        - name: pvc-oss
          mountPath: /oss-oa
      volumes:
      - name: local-storage
        hostPath:
         path: /mnt_oa
      - name: pvc-oss-oa
        persistentVolumeClaim:
            claimName: pvc-oss-oa
---
apiVersion: v1
kind: Service
metadata:
  name: oa
spec:
  selector:
    app: oa
  ports:
    - protocol: TCP
      port: 80
      targetPort: 80

5.执行k8s命令

复制代码
 kubectl apply -f aa.yaml
删除
kubectl delete -f aa.yaml
相关推荐
qq_406176144 分钟前
吃透JS异步编程:从回调地狱到Promise/Async-Await全解析
服务器·开发语言·前端·javascript·php
@大迁世界8 分钟前
停止使用 innerHTML:3 种安全渲染 HTML 的替代方案
开发语言·前端·javascript·安全·html
沛沛老爹9 分钟前
从Web到AI:多模态Agent Skills生态系统实战(Java+Vue构建跨模态智能体)
java·前端·vue.js·人工智能·rag·企业转型
jun_bai12 分钟前
conda环境配置nnU-Net生物医学图像分割肺动脉静脉血管
开发语言·python
程序员zgh19 分钟前
C语言 弱定义机制 解读
c语言·开发语言·c++
Hi_kenyon19 分钟前
JS中的export关键字
开发语言·javascript·vue.js
少控科技20 分钟前
QT高阶日记007
开发语言·qt
a努力。22 分钟前
饿了么Java面试被问:一致性哈希的虚拟节点和数据迁移
java·chrome·后端·websocket·面试·职场和发展
把csdn当日记本的菜鸡30 分钟前
Java设计模式简单入门
java·开发语言·设计模式
宵时待雨33 分钟前
数据结构(初阶)笔记归纳6:双向链表的实现
c语言·开发语言·数据结构·笔记·算法·链表