Istio 1.1.4 Helm Setup --set global.defaultNodeSelector示例

时间:2019-05-06 16:01:47

标签: kubernetes kubernetes-helm istio

关于Istio 1.1.4的当前安装选项,应该可以define a default node selector which gets added to all Istio deployments

文档中没有显示专用示例,说明如何定义选择器,仅将{}作为值。

目前,我无法找到一种有效的格式,无法通过使用--set将值传递到舵图,例如:

 --set global.defaultNodeSelector="{cloud.google.com/gke-nodepool:istio-pool}"

我尝试了几种变体,带有和不带有转义符,JSON映射,...但是目前,所有结果都导致相同的Helm错误消息:

2019/05/06 15:58:10 Warning: Merging destination map for chart 'istio'. Cannot overwrite table item 'defaultNodeSelector', with non table value: map[]

Istio version 1.1.4

Helm 2.13.1

期望会有更详细的文档,并在Istio方面提供一些示例。

2 个答案:

答案 0 :(得分:0)

经过几个小时的搜索后,我通过挖掘Istio提交发布了问题,从而找到了解决方案。

我将我的发现作为参考,也许有人可以这样来确保安全。

设置默认节点选择器至少对我而言是有效的,方法是将键之间用点分隔,并用\转义其他键(如果感兴趣的标签中有点)

--set global.defaultNodeSelector.cloud\\.google\\.com/gke-nodepool=istio-pool

为标有

的节点池创建defaultNodeSelector
cloud.google.com/gke-nodepool: istio-pool

我无法添加多个值,以致于{}在Helm中添加列表的符号似乎没有受到尊重。

答案 1 :(得分:0)

使用--set指定替代时,多个键/值对将基于键深度合并。
这意味着在您的情况下,生成的模板中只会显示最后一项。
即使使用-f(YAML文件)选项覆盖,也会发生同样的情况。

这是带有专有键的custom_values.yaml -f选项用法的示例:

public function timeEntries()
{
    return $this->hasMany('App\Model\TimeEntries');
}

$array_of_project = Project::with('timeEntries')
    ->whereBetween('spent_on', [($request->debut)), ($request->fin))])
    ->get();
  

头盔模板。 -x图表/飞行员/模板/deployment.yaml -f   custom_values.yaml

呈现的Istio的Pilot deployment.yaml清单文件片段:

#custom_values.yaml

global:
  defaultNodeSelector:
    cloud.google.com/bird: stork
    cloud.google.com/bee: wallace

使用--set可以实现相同的目的

 volumes:
      - name: config-volume
        configMap:
          name: istio
      - name: istio-certs
        secret:
          secretName: istio.istio-pilot-service-account
          optional: true
      affinity:      
        nodeAffinity:
          requiredDuringSchedulingIgnoredDuringExecution:
            nodeSelectorTerms:
            - matchExpressions:
              - key: beta.kubernetes.io/arch
                operator: In
                values:
                - amd64
                - ppc64le
                - s390x
              - key: cloud.google.com/bee
                operator: In
                values:
                - wallace
              - key: cloud.google.com/bird
                operator: In
                values:
                - stork
          preferredDuringSchedulingIgnoredDuringExecution:
          - weight: 2
            preference:
              matchExpressions:
              - key: beta.kubernetes.io/arch
                operator: In
                values:
                - amd64