LoginSignup
4
1

More than 3 years have passed since last update.

Kubernetes 1.21: SIG Cluster Lifecycle の変更内容

Last updated at Posted at 2021-04-20

Kubernetes 1.21 の CHANGELOG から SIG Cluster Lifecycle の取り組みについてにピックアップしました。

主な変更点 (What's New)

  • なし

既知の問題 (Known Issues)

  • なし

重大なアップグレードに関する警告 (Urgent Upgrade Notes)

  • kubeadm: init時にKubeletConfiguration中のcgroupDriverの値が空の場合、ユーザが明示的に指定しなかったとしても"systemd"がセットされるようになりました。この変更により、既存のノードに対してコンテナランタイムが"systemd"ドライバを利用するように設定する必要があります。この話題に対するドキュメントを参照してください。kubeadm upgradeを利用した既存のクラスタ/ノードに対するアップグレード時は、利用している古いcgroupDriverの値が保持されますが、1.22 ではこの変更が「upgrade」にも適用されます。systemd」ドライバーへの移行、または「cgroupfs」ドライバのままでの移行については、 cgroupドライバの設定方法 を参照してください。 (#99471, @neolit123) [SIG Cluster Lifecycle]

種々の変更 (Changes by Kind)

廃止予定 (Deprecation)

  • kubeadm: 非推奨の alpha selfhosting pivot が削除されました。 (#97627, @knight42)
  • kubeadm: kubeadm alpha kubeconfig userコマンドが昇格し、kubeadm kubeconfig userになりました。また、それに伴いkubeadm alpha kubeconfig userが非推奨になりました。 (#97583, @knight42) [SIG Cluster Lifecycle]

    • :pencil: kubeadm kubeconfig user -h を実行すると "Alpha Disclaimer"メッセージが出てしまうのはバグでしょうか…。
    $ kubeadm kubeconfig user -h
    Output a kubeconfig file for an additional user.
    
    Alpha Disclaimer: this command is currently alpha.
    
    • :pencil: --client-name--org が指定できますが、指定しただけでは何の権限も与えられていないので別途適切なRoleを割り当てましょう。
  • kubeadm: kubeadm alpha certsコマンドが削除されました。代わりにkubeadm certsコマンドを利用してください。 (#97706, @knight42) [SIG Cluster Lifecycle]

  • kubeadm: 非推奨のkube-dnsは今後サポートされません。もし、ClusterConfiguration.dns.typekube-dnsに設定された場合、kubeadmはエラーを吐くようになりました。 (#99646, @rajansandeep) [SIG Cluster Lifecycle]

    • :pencil: RIP

API の変更 (API Change)

  • なし

機能 (Feature)

  • kubeadm: CoreDNS v1.8.0を含むようになりました。 (#96429, @rajansandeep) [SIG Cluster Lifecycle]

    • :pencil: ちなみに、気軽にこれを v1.8.1 以降にアップグレードすると endpointsliceのwatchおよびlist権限が足りなくて死にます。ClusterRole, system:corednsに権限を追加しましょう。
    # kubectl get clusterrole system:coredns -o yaml
    apiVersion: rbac.authorization.k8s.io/v1
    kind: ClusterRole
    metadata:
      creationTimestamp: "2021-04-19T04:48:26Z"
      name: system:coredns
      resourceVersion: "240"
      uid: 32cdb275-abc3-4153-b248-13dcaaa74473
    rules:
    - apiGroups:
      - ""
      resources:
      - endpoints
      - services
      - pods
      - namespaces
      verbs:
      - list
      - watch
    - apiGroups:
      - ""
      resources:
      - nodes
      verbs:
      - get
    # 以下を追加。
    - apiGroups:
      - discovery.k8s.io
      resources:
      - endpointslices
      verbs:
      - list
      - watch
    
  • kubeadm: IPv6DualStackのFeatureGateがベータに昇格し、デフォルトで有効化されました。 (#99294, @pacoxu) [SIG Cluster Lifecycle]

  • kubeadm: IPv6サイトローカルアドレスは非推奨のため、ユーザに警告が出るようになりました。 (#99574, @pacoxu) [SIG Cluster Lifecycle]

  • kubeadm: 証明書チェーンの検証が追加されました。kubeadmを外部CAモードで利用する際、中間証明書で証明書に署名するのを許可するようになりました。ただし、中間証明書はそれぞれの証明書に含まれている必要があります、 (#97266, @robbiemcmichael) [SIG Cluster Lifecycle]

  • kubeadm: ノードのkernelに対する検証において、CGROUP_PIDSFAIR_GROUP_SCHEDを必須として、CFS_BANDWIDTHCGROUP_HUGETLBを任意のオプションとして扱うように修正しました。 (#96378, @neolit123) [SIG Cluster Lifecycle]

    • :pencil: kubeadm の preflight checkのための外部ライブラリとして利用されている kubernetes/system-validators のバージョンをv1.3.0に上げたようですが、すでにv1.4.0がリリースされているようです。
  • kubeadm: "master"とラベルされているノードが除外される仕様の以前のLBモードとの後方互換性を保持するために、"init", "join"および"upgrade"時にコントロールプレーンノードにラベルされた"node.kubernetes.io/exclude-from-external-load-balancers"が適用されるようになりました。詳しくはIssueの#97543か、リンクされたKEPを参照してください、 (#98269, @neolit123) [SIG Cluster Lifecycle]

    • :pencil: "master" ラベルがつけられたノードは、Service type: Loadbalancerの実装によっては、メンバーから除外されていましたが、そのような挙動を正式に設定したい場合は、ノードにこのラベルをつける必要があるようです。
  • kubeadm: ユーザがkubeadmの設定を利用してイメージレポジトリをカスタマイズしていた場合、Docker だけでなく、すべてのコンテナランタイムにおいて、--pod-infra-container-image でカスタマイズしたpauseコンテナのイメージリポジトリとタグを kubelet に渡します。このフラグは、イメージをガベージコレクトさせないようにkubeletに指示します。 (#99476, @neolit123) [SIG Cluster Lifecycle]

  • kubeadm: kubeadm initkubeadm join時のプレフライトチェック時にホスト名を検証するようになりました。不正な名前が指定された場合には警告が表示されます。 (#99194, @pacoxu)

ドキュメント (Documentation)

  • なし

バグ修正 (Bug or Regression)

  • kubeadm: v1.19のクラスター作成時に、etcd v3.4.13をインストールします。 (#97244, @pacoxu)
  • kubeadm: kubeadmによるアップグレード時に、カスタマイズされたCoreDNSの設定をデフォルトで上書きしてしまうバグを修正しました。 (#97016, @rajansandeep) [SIG Cluster Lifecycle]
  • kubeadm: kubeadm upgrade planの出力するテキストの形式が変更されました。もし、あなたがスクリプトやその他の自動化においてこれらの出力を利用していた場合、この変更をレビューして新しい出力形式に合うようにスクリプトを変更してください。 (#98728, @stmcginnis) [SIG Cluster Lifecycle]
    • :pencil: upgrade planで出力されるテーブルのヘッダにおいて、利用可能なバージョンを示す列名が AVAILABLE から TARGET に変更されたようです。
  • kubeadm: 32bit Linuxプラットフォームにおいてホストのメモリサイズの検知に関するバグを修正しました。 (#97403, @abelbarrera15) [SIG Cluster Lifecycle]
    • :pencil: sysinfoの返す totalram の値は、環境によって mem_unit でかける必要があることを忘れていた、というバグのようです。
  • kubeadm: kubeadm join時に、存在するetcdのメンバーの名前が無かった場合に正しく処理できなかったバグを修正しました。 (#97372, @ihgann) [SIG Cluster Lifecycle]
  • kubeadm: 既存のadmin.confに外部認証情報があると、cluster-info ConfigMapにCA証明書が書き込まれないというバグを修正しました。 (#97919, @neolit123) [SIG Cluster Lifecycle]
  • kubeadm: Kubernetes のCIで利用するバージョンを "k8s infra bucket" から取得するようにしました。 (#98836, @hasheddan) [SIG Cluster Lifecycle]
    • :pencil: kubeadm init --kubernetes-version ci/latest とかユーザがすることあるのか…?
  • allocate-node-cidrsfalseに設定された場合、node-cidr-maskに対するPodのサブネットの検証をスキップするように変更しました。 (#98984, @SataQiu) [SIG Cluster Lifecycle]

その他 (Other (Cleanup or Flake))

  • kubeadm: CIイメージのデフォルトのレポジトリが"gcr.io/kubernetes-ci-images"から"gcr.io/k8s-staging-ci-images"に変更されました。 (#97087, @SataQiu)
4
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
4
1