前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >.NET CORE WebAPI 通用 Deploy.yaml 文件

.NET CORE WebAPI 通用 Deploy.yaml 文件

原创
作者头像
全栈研发知识库
修改于 2025-03-05 02:50:19
修改于 2025-03-05 02:50:19
520
举报

.net core webapi 服务通用 Deploy.yaml 文件

代码语言:shell
AI代码解释
复制
apiVersion: app.k8s.io/v1beta1
kind: Application
metadata:
  name: ${APP_NAME}
  namespace: ${APP_NAMESPACE}
  labels:
    app.kubernetes.io/version: v1
    app.kubernetes.io/name: ${APP_NAME}
  annotations:
    servicemesh.kubesphere.io/enabled: "true"
spec:
  selector:
    matchLabels:
      app.kubernetes.io/version: v1
      app.kubernetes.io/name: ${APP_NAME}
  addOwnerRef: true
  componentKinds:
    - group: ""
      kind: Service
    - group: apps
      kind: Deployment
    - group: apps
      kind: StatefulSet
    - group: extensions
      kind: Ingress
    - group: servicemesh.kubesphere.io
      kind: Strategy
    - group: servicemesh.kubesphere.io
      kind: ServicePolicy
---
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
  namespace: ${APP_NAMESPACE}
  labels:
    app.kubernetes.io/version: v1
    app.kubernetes.io/name: ${APP_NAME}
  name: ${APP_NAME}-ingress
  annotations:
    nginx.ingress.kubernetes.io/upstream-vhost: ${APP_NAME}.${APP_NAMESPACE}.svc.cluster.local
spec:
  rules:
    - http:
        paths:
          - path: /
            pathType: ImplementationSpecific
            backend:
              service:
                name: ${APP_NAME}
                port:
                  number: 80
      host: ${APP_NAME}.${APP_NAMESPACE}.${GW_IP}.nip.io
  tls: []
---
apiVersion: apps/v1
kind: Deployment
metadata:
  namespace: ${APP_NAMESPACE}
  labels:
    version: v1
    app: ${APP_NAME}
    app.kubernetes.io/version: v1
    app.kubernetes.io/name: ${APP_NAME}
  name: ${APP_NAME}-v1
  annotations:
    servicemesh.kubesphere.io/enabled: "true"
spec:
  replicas: ${REPLICAS}
  selector:
    matchLabels:
      version: v1
      app: ${APP_NAME}
      app.kubernetes.io/version: v1
      app.kubernetes.io/name: ${APP_NAME}
  template:
    metadata:
      labels:
        version: v1
        app: ${APP_NAME}
        app.kubernetes.io/version: v1
        app.kubernetes.io/name: ${APP_NAME}
      annotations:
        sidecar.istio.io/inject: "true"
    spec:
      containers:
        - name: container-${APP_NAME}
          imagePullPolicy: Always
          # pullSecret: docker-aliyun-id # d1
          image: ${IMAGE}
          ports:
            - name: http-${APP_NAME}
              protocol: TCP
              containerPort: ${APP_PORT}
              # servicePort: 80 # d1
          env:
            - name: ENV
              value: ${ENV_NAME}
      serviceAccount: default
      affinity: {}
      initContainers: []
      volumes: []
      imagePullSecrets:
        - name: docker-aliyun-id
  strategy:
    type: RollingUpdate
    rollingUpdate:
      maxUnavailable: 25%
      maxSurge: 25%
---
apiVersion: v1
kind: Service
metadata:
  namespace: ${APP_NAMESPACE}
  labels:
    version: v1
    app: ${APP_NAME}
    app.kubernetes.io/version: v1
    app.kubernetes.io/name: ${APP_NAME}
  annotations:
    kubesphere.io/serviceType: statelessservice
    servicemesh.kubesphere.io/enabled: "true"
  name: ${APP_NAME}
spec:
  sessionAffinity: None
  selector:
    app: ${APP_NAME}
    app.kubernetes.io/version: v1
    app.kubernetes.io/name: ${APP_NAME}
  ports:
    - name: http-${APP_NAME}
      protocol: TCP
      port: 80
      targetPort: ${APP_PORT}
---
apiVersion: apps/v1
kind: Deployment
metadata:
  namespace: ${APP_NAMESPACE}
  labels:
    version: v1
    app: ${APP_NAME}
    app.kubernetes.io/version: v1
    app.kubernetes.io/name: ${APP_NAME}
  name: ${APP_NAME}-v1
  annotations:
    servicemesh.kubesphere.io/enabled: "true"
spec:
  replicas: ${REPLICAS}
  selector:
    matchLabels:
      version: v1
      app: ${APP_NAME}
      app.kubernetes.io/version: v1
      app.kubernetes.io/name: ${APP_NAME}
  template:
    metadata:
      labels:
        version: v1
        app: ${APP_NAME}
        app.kubernetes.io/version: v1
        app.kubernetes.io/name: ${APP_NAME}
      annotations:
        sidecar.istio.io/inject: "true"
    spec:
      containers:
        - name: container-${APP_NAME}
          imagePullPolicy: Always
          # pullSecret: docker-aliyun-id # d1
          image: ${IMAGE}
          ports:
            - name: http-${APP_NAME}
              protocol: TCP
              containerPort: ${APP_PORT}
              # servicePort: 80 # d1
          env:
            - name: ASPNETCORE_ENVIRONMENT
              value: ${ENV_NAME}
      serviceAccount: default
      affinity: {}
      initContainers: []
      volumes: []
      imagePullSecrets:
        - name: docker-aliyun-id
  strategy:
    type: RollingUpdate
    rollingUpdate:
      maxUnavailable: 25%
      maxSurge: 25%

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档