Kubeadm: controllerManagerExtraargとしてnode-cidr-mask-sizeを指定することは優先されませんでした

作成日 2018年03月07日  ·  4コメント  ·  ソース: kubernetes/kubeadm

これを提出する前に、kubeadmの問題でどのキーワードを検索しましたか?

controllerManagerExtraArgs、node-cidr-mask-size

これはバグレポートですか、それとも機能リクエストですか?

バグレポート

バージョン

kubeadmバージョンkubeadm version ):v1.9.3

環境

  • Kubernetesバージョンkubectl version ):v1.9.3
  • クラウドプロバイダーまたはハードウェア構成:VirtualBox
  • OS (例:/ etc / os-releaseから):
    NAME="Container Linux by CoreOS" ID=coreos VERSION=1576.4.0 VERSION_ID=1576.4.0 BUILD_ID=2017-12-06-0449 PRETTY_NAME="Container Linux by CoreOS 1576.4.0 (Ladybug)" ANSI_COLOR="38;5;75" HOME_URL="https://coreos.com/" BUG_REPORT_URL="https://issues.coreos.com" COREOS_BOARD="amd64-usr"
  • カーネル(例: uname -a ):Linux k8s-master 4.13.16-coreos-r2#1 SMP Wed Dec 6 04:27:34 UTC 2017 x86_64 Intel(R)Xeon(R)CPU E3-1505M v5 @ 2.80GHz純正IntelGNU / Linux
  • その他

どうしたの?

私は、指定されたnode-cidr-mask-size下kubeadm設定ファイルにcontrollerManagerExtraArgsフラグを設定します。 kube-controller-managerは、 --node-cidr-mask-size 2つのインスタンスが渡された状態で開始されました。 2番目のインスタンスは、kubeadmが設定しようとした値を追加し、上書きするデフォルトでした。

あなたは何が起こると思っていましたか?

kube-controller-managerは、 --node-cidr-mask-size 1つのインスタンスで開始する必要があります。そうでない場合は、優先されるように、少なくとも指定したインスタンスが2番目になります。

それを(可能な限り最小限かつ正確に)再現する方法は?

  1. myconfig.yamlファイルの内容として以下を使用してkubeadm init --config=myconfig.yamlを実行します
    apiVersion: kubeadm.k8s.io/v1alpha1 kind: MasterConfiguration api: advertiseAddress: "fd10::101" networking: serviceSubnet: fd30::0/110 podSubnet: "fd20:0::/120" controllerManagerExtraArgs: node-cidr-mask-size: "120"
  2. kube-controller-managerが開始されているフラグを確認してください。

他に知っておくべきことはありますか?

これは、kubeadmを使用してIPv6クラスターをセットアップし、podSubnetを指定しようとしたときに問題になりました。

最も参考になるコメント

@tmjd networking.podSubnetcontrollerManagerExtraArgs.cluster-cidrし、 allocate-node-cidrsも追加することで回避しました。これは、 podSubnetがあった場合のkubeadmコードと同じです。直接指定されます。

元の例を変更すると、次のようになります。

apiVersion: kubeadm.k8s.io/v1alpha1
kind: MasterConfiguration
api:  
  advertiseAddress: "fd10::101"
networking:
  serviceSubnet: fd30::0/110   
  # MOVED BELOW podSubnet: "fd20:0::/120"    
controllerManagerExtraArgs:
  allocate-node-cidrs: "true"
  cluster-cidr: "fd20:0::/120"
  node-cidr-mask-size: "120"

この回避策は、基本的にkubeadmのifステートメントを回避しています。
https://github.com/kubernetes/kubernetes/blob/86a58202b68d04b2e31b56db80b4d2a4dec77c93/cmd/kubeadm/app/phases/controlplane/manifests.go#L336 -L342

kubeadmが検証以外の目的でpodSubnetを使用しているようには見えませんが、間違っている可能性があります。

ただし、よりサポートされている方法でノードのcidrマスクサイズをオーバーライドできることを希望します。

全てのコメント4件

1.9.6にまだ存在します。

これは実際にはnetworkingキーの下の単なるオプションである必要があります。現在、設定に--node-cidr-mask-sizeを開始時と終了時に2回配置するだけです。

@tmjd networking.podSubnetcontrollerManagerExtraArgs.cluster-cidrし、 allocate-node-cidrsも追加することで回避しました。これは、 podSubnetがあった場合のkubeadmコードと同じです。直接指定されます。

元の例を変更すると、次のようになります。

apiVersion: kubeadm.k8s.io/v1alpha1
kind: MasterConfiguration
api:  
  advertiseAddress: "fd10::101"
networking:
  serviceSubnet: fd30::0/110   
  # MOVED BELOW podSubnet: "fd20:0::/120"    
controllerManagerExtraArgs:
  allocate-node-cidrs: "true"
  cluster-cidr: "fd20:0::/120"
  node-cidr-mask-size: "120"

この回避策は、基本的にkubeadmのifステートメントを回避しています。
https://github.com/kubernetes/kubernetes/blob/86a58202b68d04b2e31b56db80b4d2a4dec77c93/cmd/kubeadm/app/phases/controlplane/manifests.go#L336 -L342

kubeadmが検証以外の目的でpodSubnetを使用しているようには見えませんが、間違っている可能性があります。

ただし、よりサポートされている方法でノードのcidrマスクサイズをオーバーライドできることを希望します。

@tmjdフィックスは、マスターからの次のkubeadmリリースに到達するはずです。

これのステータスは何ですか?
現在、Kubernetesクラスターを次のようにセットアップしています。

kubeadm version: &version.Info{Major:"1", Minor:"10", GitVersion:"v1.10.4", GitCommit:"5ca598b4ba5abb89bb773071ce452e33fb66339d", GitTreeState:"clean", BuildDate:"2018-06-06T08:00:59Z", GoVersion:"go1.9.3", Compiler:"gc", Platform:"linux/amd64"}

問題はまだここで発生しています。

このページは役に立ちましたか?
0 / 5 - 0 評価