日本熟妇hd丰满老熟妇,中文字幕一区二区三区在线不卡 ,亚洲成片在线观看,免费女同在线一区二区

差異化規(guī)則

您可以在ACK One Fleet實(shí)例上進(jìn)行多集群應(yīng)用分發(fā)差異化配置,實(shí)現(xiàn)同一個(gè)應(yīng)用在不同目標(biāo)集群上的配置不同。本文通過(guò)差異化配置示例介紹應(yīng)用分發(fā)支持的更多差異化規(guī)則。

規(guī)則一:Deployment副本數(shù)的差異化

您可以通過(guò)以下YAML配置示例文件完成Deployment副本數(shù)的差異化配置,實(shí)現(xiàn)在目標(biāo)集群managedcluster-cd****中部署副本數(shù)為5的Deployment。

配置示例

apiVersion: core.oam.dev/v1alpha1
kind: Policy
metadata:
  name: cluster-beijing
  namespace: demo
type: topology
properties:
  #定義分發(fā)的目標(biāo)集群。
  clusters: ["managedcluster-cd****"]
---
apiVersion: core.oam.dev/v1alpha1
kind: Policy
metadata:
  name: override-replic-beijing
  namespace: demo
#定義分發(fā)的差異化配置。
type: override
properties:
  components:
  #通過(guò)名稱引用Application中定義的Components,作為待差異化的Kubernetes資源。
  - name: "demo"
    #定義差異化配置類型,type scaler支持修改Deployment的副本數(shù),本示例修改副本數(shù)為5。
    traits:
    - type: scaler
      properties:
        replicas: 5
---
apiVersion: core.oam.dev/v1alpha1
kind: Workflow
metadata:
  name: deploy-demo
  namespace: demo
steps:
  - type: deploy
    name: deploy-beijing
    properties:
      #在工作流中應(yīng)用差異化配置和分發(fā)目標(biāo)。
      policies: ["override-replic-beijing", "cluster-beijing"]
---
apiVersion: core.oam.dev/v1beta1
kind: Application
metadata:
  annotations:
    app.oam.dev/publishVersion: version1
  name: demo
  namespace: demo
spec:
  #定義Component。
  components:
    - name: demo
      type: ref-objects
      properties:
        objects:
          - apiVersion: apps/v1
            kind: Deployment
            name: demo
  #引用工作流。
  workflow:
    ref: deploy-demo

差異化配置說(shuō)明

Deployment副本數(shù)差異化配置分為以下三部分:

  • 模塊components:在Application中定義Component,將待差異化的Kubernetes資源作為Component的引用資源。

    說(shuō)明

    差異化配置只會(huì)修改Component中引用的第一個(gè)資源。

  • 差異化配置traits:ACK One預(yù)先定義的差異化配置,簡(jiǎn)化差異化規(guī)則的編寫。本示例中scaler支持修改Deployment的副本數(shù)。

    參數(shù)

    說(shuō)明

    traits. type: scaler

    定義traitstype類型。

    traits. properties. replicas

    差異化的Deployment副本數(shù)。

  • 差異化的目標(biāo)集群:在Workflowsteps中,同時(shí)引用差異化配置Policy和分發(fā)目標(biāo)Policy,實(shí)現(xiàn)分發(fā)前對(duì)Kubernetes資源的差異化配置,將差異化的結(jié)果部署在目標(biāo)集群中。

規(guī)則二:Deployment container image的差異化

您可以通過(guò)以下YAML配置示例文件完成Deployment container image的差異化配置,實(shí)現(xiàn)Deployment中Container的image配置修改。

配置示例

apiVersion: core.oam.dev/v1alpha1
kind: Policy
metadata:
  name: override-image-beijing
  namespace: demo
type: override
properties:
  components:
  - name: "demo"
    #定義差異化配置類型,type container-image支持修改Deployment中Container的image配置。
    traits:
    - type: container-image
      properties:
        containerName: demo
        image: registry.cn-hangzhou.aliyuncs.com/acs/rollouts-demo:green
        imagePullPolicy: Always

差異化配置說(shuō)明

參數(shù)

說(shuō)明

traits. type: container-image

定義traitstype類型。

traits. properties. containerName

使用 containerName在Deployment中選擇Container做差異化配置,屬于必選項(xiàng)。

traits. properties. image

差異化image配置,覆蓋原有Deployment中Container的image配置,可按需選擇。

traits. properties. imagePullPolicy

差異化imagePullPolicy配置,覆蓋原有Deployment中Container的imagePullPolicy配置,可按需選擇。

規(guī)則三:Deployment container command的差異化

您可以通過(guò)以下YAML配置示例文件完成Deployment container command的差異化配置,實(shí)現(xiàn)Deployment中Container的Command配置修改。

配置示例

apiVersion: core.oam.dev/v1alpha1
kind: Policy
metadata:
  name: override-command
  namespace: demo
type: override
properties:
  components:
  - name: "demo"
    #定義差異化配置類型,type command支持修改Deployment中Container的command配置。
    traits:
    - type: command
      properties:
        containerName: demo
        #覆蓋container的command參數(shù)。
        command: ["demo-command", "demo-parameter1", "demo-parameter2"]
        #覆蓋container的args參數(shù)。
        args: ["demo-parameter1", "demo-parameter2"]
        #在原有args中增加參數(shù)。
        addArgs: ["new-parameter1"]
        #從原有args中刪除參數(shù)。
        delArgs: ["parameter1-to-delete"]

差異化配置說(shuō)明

參數(shù)

說(shuō)明

traits. type: command

定義traitstype類型。

traits. properties. containerName

使用containerName在Deployment中選擇Container做差異化配置。

traits. properties. command

差異化command配置,覆蓋原有Deployment中Container的command配置。

traits. properties. args

差異化args配置,覆蓋原有Deployment中Container的args配置。

traits. properties. addArgs

在原有args中增加參數(shù)。

traits. properties. delArgs

從原有args中刪除參數(shù)。

規(guī)則四:Deployment container env的差異化

您可以通過(guò)以下YAML配置示例文件完成Deployment container env的差異化配置,實(shí)現(xiàn)Deployment中Container的env配置修改。

配置示例

apiVersion: core.oam.dev/v1alpha1
kind: Policy
metadata:
  name: override-command
  namespace: demo
type: override
properties:
  components:
  - name: "demo"
    #定義差異化配置類型,type env支持修改Deployment中Container的env配置。
    traits:
    - type: env
      properties:
        containerName: demo
        #增加新的env配置,如果原有Container的同名env,則覆蓋env的值。
        env:
          key_first: value_first
          key_second: value_second
        #刪除原有Container的env配置。
        unset: ["ENV1"]

差異化配置說(shuō)明

參數(shù)

說(shuō)明

traits. type: env

定義traitstype類型。

traits. properties. containerName

使用containerName在Deployment中選擇Container做差異化配置。

traits. properties. env

增加新的env配置,如果原有Container的同名env,則覆蓋原來(lái)env的值。

traits. properties. unset

刪除原有Container的env配置。

規(guī)則五:基于JSON Patch的差異化

您可以通過(guò)以下YAML配置示例文件完成基于JSON Patch的差異化配置,實(shí)現(xiàn)資源參數(shù)的修改。

配置示例

apiVersion: core.oam.dev/v1alpha1
kind: Policy
metadata:
  name: override-json-path
  namespace: demo
type: override
properties:
  components:
  - name: "demo"
    #定義差異化配置類型,type json-patch支持通過(guò)JSON Patch選擇要修改的資源的參數(shù),并定義修改方式。
    traits:
    - type: json-patch
      properties:
        operations:
          #op: add增加資源的參數(shù),示例中,增加一個(gè)Label。
          - op: add
            path: "/metadata/labels/label-to-add-key"
            value: label-to-add-key-value
          #op: replace修改資源的參數(shù)的值,示例中,修改一個(gè)已有Label的值。
          - op: replace
            path: "/metadata/labels/label-to-replace-key"
            value: label-modified-value
          #op: remove刪除資源的參數(shù),示例中,刪除一個(gè)已有Label。
          - op: remove
            path: "/metadata/labels/label-to-remove-key"

差異化配置說(shuō)明

參數(shù)

說(shuō)明

traits. type: json-patch

定義traitstype類型。

traits. properties. operations. op: add

增加資源的參數(shù)。

traits. properties. operations. op: replace

修改資源參數(shù)的值。

traits. properties. operations. op: remove

刪除資源的參數(shù)。

規(guī)則六:JSON Merge差異化

基于JSON Patch的差異化配置,需要為每個(gè)待定的參數(shù)定義差異化配置,當(dāng)資源需要修改參數(shù)較多時(shí)比較繁瑣,此時(shí)可以選用JSON Merge差異化來(lái)簡(jiǎn)化配置,實(shí)現(xiàn)大量資源參數(shù)的修改。

您可以通過(guò)以下YAML配置示例文件完成JSON Merge差異化配置,實(shí)現(xiàn)不同集群中ConfigMap的配置修改。

配置示例

#Fleet實(shí)例中創(chuàng)建ConfigMap。
apiVersion: v1
kind: ConfigMap
metadata:
  name: demo
  namespace: demo
data:
  confg-not-override: "not-override"
  confg-to-override: "value"
  config-file-to-override: |
    {
      "feature-parameters": {
        "key1": "value1",
        "key2": "value2",
      }
    }
  config-to-delete: "to-delete"

---
#創(chuàng)建差異化規(guī)則。
apiVersion: core.oam.dev/v1alpha1
kind: Policy
metadata:
  name: override-configmap
  namespace: demo
type: override
properties:
  components:
  - name: "demo"
    #定義差異化配置類型,type json-merge-patch支持通過(guò)在properties中定義結(jié)構(gòu)體與原資源合并的方式修改資源。
    traits:
    - type: json-merge-patch
      properties:
        #待修改資源的第一級(jí)。
        data:
          #修改confg-to-override的值。
          confg-to-override: "value-override"
          #增加config-to-add。
          config-to-add: "to-add"
          #修改config-file-to-override的內(nèi)容。
          config-file-to-override: |
            {
              "feature-parameters": {
                "key1": "value1-override",
                "key2": "value2-override",
              }
            }
          #刪除config-to-delete。
          config-to-delete: null

---
#修改后的資源。
apiVersion: v1
kind: ConfigMap
metadata:
  name: demo
  namespace: demo
data:
  #confg-not-override沒(méi)有差異化保持不變。
  confg-not-override: "not-override"
  confg-to-override: "value-override"
  config-file-to-override: |
    {
      "feature-parameters": {
        "key1": "value1-override",
        "key2": "value2-override",
      }
    }

差異化配置說(shuō)明

參數(shù)

說(shuō)明

traits. type: json-merge-patch

定義資源結(jié)構(gòu)體,與原資源合并,實(shí)現(xiàn)差異化。