6
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

Kubernetes 1.12: API Changes

Last updated at Posted at 2018-10-10

はじめに

このエントリは、Kubernetes 1.12 の CHANGELOG から API Changes についてまとめています。翻訳に合わせて補足を追記しています。その他の内容は次のリンク先を参照してください。

Kubernetes 1.12: API Changes

  • kubeadm コマンドにおいて alpha phase kubelet config annotate-cri phrase コマンドがサポートされました。(#68449, @fabriziopandini)

    :pencil: **Note**
    `kubeadm init` 時に config から渡された CRI Socket の情報を `kubeadm upgrades` 時に利用できるよう、`Node` のアノテーションに保存する、という Phase のようです。
  • Windows 上の kubeadm において --cri-socket のデフォルト値が --tcp://localhost:2375 になりました。(#67447, @benmoss)

  • kubeadm にて、実験的に --rootfs フラグが実装されました。これを利用することで kubeadm は (Kubernetes 設定のための) ファイル操作をする前に chroot を行うようになります。この機能はたとえば docker から起動された kubeadm のように、 Kubernetes を異なるファイルシステム上にセットアップするために便利でしょう。(:pencil: 便利そう!) (#54935, @anguslees)

  • kubeadm config images pull 時に指定する --cri-socket-path フラグが他のサブコマンドとの一貫性確保のために --cri-socket へリネームされました。

  • kubeadm にて ControlPlaneEndpoint の設定が API から ClusterConfiguration へと移動しました。(#67830, @fabriziopandini)

  • kubeadmInitConfiguration が InitConfiguration および ClusterConfiguration の二つの構造体に分割されました。(#67441, @rosti)

    :pencil: **Note**
    `InitConfiguration` がリファクタリングされて、`kube-proxy` や `controller-manager` の設定のような cluster-wide な設定が `ClusterConfiguration` という設定カテゴリに整理され、Init 時のマスターノードの設定から分割された、ということのようです。
  • RuntimeClass API がアルファ機能として追加されました。この機能を利用する際には RuntimeClass feature gate を有効化してください。RuntimeClass API リソースは、クラスタ内のコンテナを実行するために利用する、異なるランタイムのクラスを定義することできます。Pod は、その定義内の RuntimeClassName フィールドを通して、RuntimeClass を選択することができます。(#67737, @tallclair)

  • サーバサイドにおける dry-run の実行が、副作用 (side effect) や調整ループ (reconciliation mechanism) に依存する Admission webhook を実行してしまう問題を解決するために、admissionregistration.k8s.io/v1beta1.ValidatingWebhookConfigurationadmissionregistration.k8s.io/v1beta1.MutatingWebhookConfiguration に その Webhook がサーバサイドの dry-run をサポートしているかどうかを示す新しいフィールド(SideEffects) が追加されました。もし、dry-run をサポートしていない Webhook が呼ばれるリソースに対するリクエストがあった場合、サーバは 400: Bad Request を返し、リクエストを拒否します。また、admission.k8s.io/v1beta1.AdmissionReview に対しても、dry-run に対応している Webhook であるかを確認するために同じように新しくフィールドが追加されました。(#66936, @jennybuckley)

  • CRIRunPodSandboxRequest において sandobox を実行する際にランタイムの設定を選択するために利用できる runtime_hundler field がサポートされました。(アルファ機能) (#67518, @tallclair)

    :pencil: **Note**
    `io.kubernetes.cri-o.TrustedSandbox` アノテーションによる、`trusted` なのか、`untrusted` なのか、というバイナリーな選択肢から、`RuntimeClass` へと置き換わる第一歩のようです、
  • status サブリソースが有効化された際に、CRD バリデーションスキーマのルートにさらにいくつかのフィールドが許されるようになりました。(#65357, @nikhita)

  • kubelet における --docker-disable-shared-pid フラグは削除されました。Pod 内の PID namespace の共用は個々の PodShareProcessNamespace オプションを利用してください。(#66506, @verb)

  • kube-dns で利用されている dnsmasq--dns-loop-detect オプションが追加されました。(#67302, @dixudx)

    :pencil: **Note**
    [cluster/addons/dns](https://github.com/kubernetes/kubernetes/tree/master/cluster/addons/dns) 内と `kubeadm`, `kubemark` で利用されているマニフェストの `dnsmasq` の引数に `--dns-loop-detect` を渡すようにした、というだけのようです。
  • kube-addon-manager において追加の --prune-whitelist リソースをサポートしました。(#67743, @Random-Liu)

    :pencil: **Note**
    `addon-manager` は `addonmanager.kubernetes.io/mode` というラベルと、`kubectl apply --prune --label=$LABEL` という[仕組み](https://kubernetes.io/docs/concepts/overview/object-management-kubectl/declarative-config/#alternative-kubectl-apply-f-directory-prune-l-your-label)を使って[リソースの管理を行っている](https://qiita.com/inajob/items/300805e895eec6535dd2)のですが、デフォルトで prune されないリソースが存在し、addon 管理上問題となっていました。この修正で prune されるべきリソースがちゃんと prune されるようになったようです。
  • Resource Quota ScopeSelectors がベータに昇格し、デフォルトで有効化されます。(#67077, @vikaschoudhary16)

    :pencil: **Note**
    `ResourceQuota` に `scopeSelector` というフィールドが追加され、プライオリティクラスごとに Quota を設定できる機能のようです。
  • OpenAPI spec とドキュメントに DELETE リクエスト時の 202 Accepted レスポンスが反映されました。この変更はエラーパスに依存しているいくつかのクライエントに影響を与える可能性があります。(#63418, @roycaihw)

    :pencil: **Note**
    `kube-apiserver` はそもそも非同期の `DELETE` オペレーション時に 202 Accepted を返していたのですが、それが OpenAPI の spec に反映されていなかった問題を修正した、ということらしいですが、その OpenAPI spec から生成された各種言語のクライアントが非同期オペレーションをサポートしていない場合があるようです。
  • アルファ機能であった Initializer アドミッションプラグインはデフォルトとして今後有効化されることはありません。これは、アルファ API としてデフォルトとしてオフにせよというポリシー通りの振る舞いです。(#66039, @liggitt)

  • kube-scheduler に API レベルでバリデーションが追加されました。(#66799, @noqcks)

    :pencil: **Note**
    `kube-scheduler` の設定ファイルのバリデーションが入った、ということらしいです。
  • PodDisruptionBudget における DisruptedPods フィールドが必須項目からオプション項目になりました。

6
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
6
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?