当前位置: 首页 > article >正文

k8s服务StatefulSet部署模板

java 服务StatefulSet部署模板

vim templates-test.yaml
apiVersion: apps/v1
kind: StatefulSet
metadata:
  labels:
    app: ${app_labels}
  name: ${app_name}
  namespace: ${app_namespace}
spec:
  replicas: ${app_replicas_count}
  selector:
    matchLabels:
      app: ${app_labels}
  template:
      labels:
        app: ${app_labels}
    spec:
      containers:
        - env:
            - name: JAVA_OPTS
              value: ${java_opts}
          image: ${app_docker_image}
          imagePullPolicy: Always
          livenessProbe:
            failureThreshold: 5
            httpGet:
              path: /actuator/health
              port: ${app_port}
              scheme: HTTP
            initialDelaySeconds: 120
            periodSeconds: 10
            successThreshold: 1
            timeoutSeconds: 5
          name: ${app_name}
          ports:
            - containerPort: ${app_port}
              name: http
              protocol: TCP
          readinessProbe:
            failureThreshold: 5
            httpGet:
              path: /actuator/health
              port: ${app_port}
              scheme: HTTP
            initialDelaySeconds: 120
            periodSeconds: 60
            successThreshold: 1
            timeoutSeconds: 5
          resources:
            limits:
              cpu: ${app_cpu_limit}
              memory: {app_memory_limit}
          terminationMessagePath: /dev/termination-log
          terminationMessagePolicy: File
      dnsPolicy: ClusterFirst
      imagePullSecrets:
        - name: harbor
      restartPolicy: Always
      schedulerName: default-scheduler
      securityContext: {}
      terminationGracePeriodSeconds: 30
  updateStrategy:
    rollingUpdate:
      partition: 0
    type: RollingUpdate
---
apiVersion: v1
kind: Service
metadata:
  labels:
    app: ${app_labels}
  name: ${app_service_name}
  namespace: ${app_namespace}
spec:
  clusterIP: None
  ports:
    - name: ${app_service_name}
      port: ${app_port}
      protocol: TCP
      targetPort: ${app_port}
  selector:
    app: ${app_labels}
  sessionAffinity: None
  type: ClusterIP
status:
  loadBalancer: {}


涉及到的变量

 ${app_labels}
 ${app_name}
 ${app_namespace}
 ${app_replicas_count}
 ${java_opts}
 ${app_docker_image}
 ${app_port}
 ${app_cpu_limit}
 {app_memory_limit}
${app_service_name}

测试示例

设置环境变量

export app_labels=test-lable
export app_name=test-name
export app_namespace=test-ns
export app_replicas_count=1
export java_opts="-xms=100mi -xms=100mi -xms=100mi"
export app_docker_image=docker.io/library/openjdk:8-jdk-alpine
export app_port=10000
export app_cpu_limit=1
export app_memory_limit=1000mi
export app_service_name=test-svc-name

执行替换

  envsubst \'\${app_name},\${app_namespace},\${app_labels},\${app_replicas_count},\${java_opts}\,\${app_docker_image}\,\${app_port}\,\${app_cpu_limit}\,\${app_memory_limit}\,\${app_service_name}\' < /root/test/templates-test.yaml > /root/test/templates-new.yaml

查看新文件 templates-new.yaml


http://www.kler.cn/a/516111.html

相关文章:

  • 回首2024,展望2025
  • 方便快捷的软件展示平台查找和下载所需的软件
  • AI新玩法:Flux.1图像生成结合内网穿透远程生图的解决方案
  • 高效安全文件传输新选择!群晖NAS如何实现无公网IP下的SFTP远程连接
  • 他把智能科技引入现代农业领域
  • Observability:最大化可观察性 AI 助手体验的 5 大提示(prompts)
  • 如何用概率论解决真实问题?用随机变量去建模,最大的难题是相关关系
  • CAS简解
  • 怎么解决Visual Studio中两个cpp文件中相同函数名重定义问题
  • 【github 使用相关】提交pr和commit message Conventional Commits 规范 代码提交的描述该写什么?
  • 【C++】详细讲解继承(上)
  • 【网络协议】【http】【https】ECDHE-TLS1.2
  • 领域驱动设计(DDD)四 订单管理系统实践步骤
  • 【时时三省】(C语言基础)格式化输入输出函数
  • 2025.1.21——六、BUU XSS COURSE 1
  • P1115 最大子段和
  • 人工智能在音频、视觉、多模态领域的应用
  • 踏浪而行,2024年技术创作的星光轨迹
  • c++瓷砖
  • 4. LwIP_网络数据包管理
  • Spring AI Document
  • 消息队列篇--原理篇--常见消息队列总结(RabbitMQ,Kafka,ActiveMQ,RocketMQ,Pulsar)
  • IoTDB结合Mybatis使用示例(增删查改自定义sql等)
  • electron打包报错解决
  • ThinkPHP 8模型与数据的插入、更新、删除
  • 转换模型到 bfloat16 精度之前需要做的检查工作,不然模型报错给你看