LoginSignup
1

More than 1 year has passed since last update.

posted at

updated at

Organization

Kubernetes v1.20: SIG-Authの 変更内容

このページではKubernetes v1.20におけるSIG-Authに関連する取り組みについて、ChangelogのChanges By Kindの内容から紹介しています。ここに記載されていないものは別のまとめで記載されていると思いますので、 Kubernetes 1.20: 変更点まとめ(後日公開) も合わせて参照してみてください。

Changes by Kind

Deprecation
N/A

API Changes

  • TokenRequestTokenRequestProjection機能がGAに昇格しました。この機能はSecretオブジェクトでは見えず、Podの生存期間に紐付くServiceAccount Tokenを生成できます。ます。設定や使い方の詳細は https://kubernetes.io/docs/tasks/configure-pod-container/configure-service-account/#service-account-token-volume-projection を参照してください。TokenRequestTokenRequestProjectionのFeatureGateはv1.21で削除されます。

    • kubeadmのkube-apiserver Podマニフェストにデフォルトで--service-account-key-file--service-account-signing-key-file, --service-account-issuerが含まれるようになりました。
    • (#93258, @zshihang) [SIG API Machinery, Auth, Cluster Lifecycle, Storage and Testing]

    📝 TokenRequest APIを使った Podに紐付くServiceAccount トークンを生成する機能がGAになりました。
    TokenRequestを有効にするには--service-account-key-file,--service=account-signing-key-file, --service-account-issuerを設定する必要があります。
    TokenRequestProjectionは、そのPodに紐付くServiceAccount トークンをTokenRequest APIを使って発行し、Projected VolumeによってPodに与える機能になります。Service Account トークンには有効期限やTokenのaudienceなどをclaimとして持たせることが可能です。

  • Feature Gate BoundServiceAccountTokenVolume が有効な場合、クラスタ管理者はserviceaccount_stale_tokens_totalメトリックを使って、拡張トークンに依存しているワークロードを監視することができます。そのようなワークロードがない場合は、kube-apiserver を --service-account-extend-token-expiration=false フラグで起動して拡張トークンをオフにします。(#96273, @zshihang) [SIG API Machinery and Auth]

    📝 BoundServiceAccountTokenVolumeを有効にした場合に --service-account-extend-token-expirationフラグがデフォルトでtrueに設定されるようになりました。
    --service-account-extend-token-expiration フラグは、移行期間などにおいてトークンの有効期限を一時的に延長するためのフラグです。service-account-max-token-expirationの値を無視して1年間の期間が設定されるようです。
    BoundServiceAccountTokenVolume を有効することで有効期限を持ったトークンが配布されるようになりますが、トークンをローテーションしていないワークロードやレガシートークンを使っているワークロードが存在しているかどうかを監視できるメトリクスが提供されているようです。
    参考: https://qiita.com/hiyosi/items/35c22507b2a85892c707

  • kube-apiserverは期限切れのkube-apiserver Leaseオブジェクトを削除するようになりました。

    • この機能はAPIServerIdentity Feature Gateに属しています。
    • identity-lease-garbage-collection-check-period-secondsフラグはkube-apiserverに追加されました。
    • (#95895, @roycaihw) [SIG API Machinery, Apps, Auth and Testing]

    📝 https://kubernetes.io/docs/tasks/administer-cluster/highly-available-master/#api-server-identity

​​

  • kube-controller-manager: volume pluginは--volume-host-allow-local-loopback=false を設定してlocalとloopbackアドレスからのアクセスを制限、または --volume-host-cidr-denylist を設定することで特定の CIDR レンジからのアクセスを制限することができます。(例, --volume-host-cidr-denylist=127.0.0.1/28,feed::/16) (#91785, @mattcary) [SIG API Machinery, Apps, Auth, CLI, Network, Node, Storage and Testing]

  • RFC 1123に従っていないことを示すために、DNS-1123 エラーメッセージを修正しました(#94182, @mattfenwick) [SIG API Machinery, Apps, Auth, Network and Node]

  • RuntimeClassの機能がGAに昇格しました。node.k8s.io API groupsがv1beta1からv1に昇格しました。(#95718, @SergeyKanzhelev) [SIG Apps, Auth, Node, Scheduling and Testing]

  • Server Side ApplyがLabelSelectorフィールドをアトミックとして扱うようになります。セレクタ全体が単一のライターによって管理され、一緒に更新されることを意味します。これらのフィールドには、直感的な方法でマージできない相互に関連した分離できないフィールドが含まれているためです。(#93901, @jpbetz) [SIG API Machinery, Auth, CLI, Cloud Provider, Cluster Lifecycle, Instrumentation, Network, Node, Storage and Testing]

  • Feature Gate ServiceAccountIssuerDiscovery はベータになり、デフォルトで有効になりました (#91921, @mtaufen) [SIG Auth]

    📝 参考: https://qiita.com/hiyosi/items/43ddb0ff9b83070d95a8

  • CSIDriverSpecに2つのフィールドを追加するFeature Gate CSIServiceAccountToken を導入します。(#93130, @zshihang) [SIG API Machinery, Apps, Auth, CLI, Network, Node, Storage and Testing]

    📝 TokenRequest APIを使ったPodに紐付くトークンをVolumeContextとしてCSI driverに渡す機能のようです。

  • Feature Gateを設定することで、cronjob controller v2を利用できます。将来のリリースでデフォルトのコントローラになります。(#93370, @alaypatel07) [SIG API Machinery, Apps, Auth and Testing]

Feature

  • writeリクエストを処理する前にAPIサーバにstorageversionを更新させるFeature Gate StorageVersionAPIが追加されます。この機能はstorage migratorがbuilt-inのリソースに対するストレージマイグレーションを管理できます。internal.apiserver.k8s.io/v1alpha1 APIとFeature Gate APIServerIdentityの有効化が必要です。(#93873, @roycaihw) [SIG API Machinery, Auth and Testing]

  • Node Authorizerの負荷を見積もることができる node_authorizer_actions_duration_seconds メトリックが追加されました。(#92466, @mborsz) [SIG API Machinery, Auth and Instrumentation]

  • verb、resource、およびsubresourceのラベルを持つ、APIサーバーのself-requestをカウントするためのカウンタメトリックapiserver_request_selfを追加しました。(#94288, @LogicalShark) [SIG API Machinery, Auth, Instrumentation and Scheduling]

  • client-go credential pluginは、現在のクラスタ情報を KUBERNETES_EXEC_INFO 環境変数を介して渡すことができるようになりました。(#95489, @ankeesler) [SIG API Machinery and Auth]

  • kube-apiserver: --audit-log-compress でローテートしたauditログファイルを圧縮できるようしました。(#94066, @lojies) [SIG API Machinery and Auth]

  • The beta RootCAConfigMap feature gate is enabled by default and causes kube-controller-manager to publish a "kube-root-ca.crt" ConfigMap to every namespace. This ConfigMap contains a CA bundle used for verifying connections to the kube-apiserver. (#96197, @zshihang) [SIG API Machinery, Apps, Auth and Testing]

  • Feature Gate RootCAConfigMapがベータになりデフォルトで有効になり、kube-controller-manager は kube-root-ca.crt ConfigMap をすべてのネームスペースに公開します。この ConfigMap には、kube-apiserver への接続を検証するための CA バンドルが含まれています。

    📝 K8s APIサーバのサーバ証明書を検証するためのCA証明書バンドルがConfigMapとしてすべてのNamespaceに公開されるようになりました。
    以下のようにしてPodにマウントすることができます。BoundServiceAccountVolumeでは自動的にマウントされるようです。

  volumes:
  - name: kube-api-access-jz2lz
    projected:
​​      defaultMode: 420
      sources:
      - configMap:
          items:
          - key: ca.crt
            path: ca.crt
          name: kube-root-ca.crt

Documentation

  • N/A

Failing Test

  • N/A

Bug or Regression

  • runtime/defaultのseccomp profileを許可しないPodSecurityPolicyが存在する場合に、docker/defaultのseccomp annotationを持つPodが1.19で作成されないというリグレッションを修正しました。(#95985, @saschagrunert) [SIG Auth]

Other (Cleanup or Flake)

  • /metrics、/livez/、/readyz/、および/healthz/ エンドポイントのブートストラップ ClusterRole、ClusterRoleBindingおよびグループを追加します。(#93311, @logicalhan) [SIG API Machinery, Auth, Cloud Provider and Instrumentation]

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
What you can do with signing up
1