为wso2.carbon定义唯一的ID:部署中,yaml|| Kubernetes部署

eqqqjvef  于 2023-10-17  发布在  Kubernetes
关注(0)|答案(1)|浏览(94)

**需求:**需要在deployment.yaml for id parameter,wso2.carbon section中为每个pod分配两个不同的id。即wso 2-am-analytics_1和wso 2-am-analytics_2
**设置:**本次部署为kubernetes deployment deployment.yaml

---
apiVersion: v1
kind: ConfigMap
metadata:
  name: wso2apim-mnt-worker-conf
  namespace: wso2
data:
  deployment.yaml: |
    wso2.carbon:
      type: wso2-apim-analytics
        
      id: wso2-am-analytics
        
      name: WSO2 API Manager Analytics Server
      ports:
          # port offset
        offset: 0
.
.
.
---
apiVersion: apps/v1
kind: Deployment
metadata:
  name: wso2apim-mnt-worker
  namespace: wso2
spec:
  replicas: 2
  strategy:
    type: Recreate
  selector:
    matchLabels:
      deployment: wso2apim-mnt-worker
.
.
.
bwitn5fc

bwitn5fc1#

您不一定要有wso 2-am-analytics_1和wso 2-am-analytics_2这样的ID。这必须是一个独特的价值观。因此,您可以使用类似Pod IP的东西来实现这一点。如果对ID值要求严格,则可以基于配置文件创建配置Map,然后使用一些逻辑来适当地填充配置文件的ID字段。如果你使用 Helm ,这将是非常容易的。
如果你可以使用其他的唯一值,你可以做以下事情。在WSO 2中,你可以从环境变量中读取值,因此你可以这样做。

---
    apiVersion: v1
    kind: ConfigMap
    metadata:
      name: wso2apim-mnt-worker-conf
      namespace: wso2
    data:
      deployment.yaml: |
        wso2.carbon:
          type: wso2-apim-analytics
            
          id: ${NODE_ID}
            
          name: WSO2 API Manager Analytics Server
          ports:
              # port offset
            offset: 0
   
# Then in the Deployment pass environment variable
env:
  -
   name: NODE_ID
   valueFrom:
     fieldRef:
     fieldPath: status.podIP

相关问题