Ce diaporama a bien été signalé.
Le téléchargement de votre SlideShare est en cours. ×

Kubernetes にこれから入るかもしれない注目機能!(2022年11月版) / TechFeed Experts Night #7 〜 コンテナ技術を語る

Publicité
Publicité
Publicité
Publicité
Publicité
Publicité
Publicité
Publicité
Publicité
Publicité
Publicité
Publicité

Consultez-les par la suite

1 sur 11 Publicité

Kubernetes にこれから入るかもしれない注目機能!(2022年11月版) / TechFeed Experts Night #7 〜 コンテナ技術を語る

Télécharger pour lire hors ligne

2022年11月以降にリリースされる Kubernetes バージョンに入るかもしれない機能のなかで私が注目するものを紹介します。

イベントサイト: https://techfeed.io/events/techfeed-experts-night-7

2022年11月以降にリリースされる Kubernetes バージョンに入るかもしれない機能のなかで私が注目するものを紹介します。

イベントサイト: https://techfeed.io/events/techfeed-experts-night-7

Publicité
Publicité

Plus De Contenu Connexe

Similaire à Kubernetes にこれから入るかもしれない注目機能!(2022年11月版) / TechFeed Experts Night #7 〜 コンテナ技術を語る (20)

Plus par Preferred Networks (20)

Publicité

Plus récents (20)

Kubernetes にこれから入るかもしれない注目機能!(2022年11月版) / TechFeed Experts Night #7 〜 コンテナ技術を語る

  1. 1. TechFeed Experts Night#7 〜 コンテナ技術を語る (2022/11/02) SUDA Kazuki, Preferred Networks, Inc. (@superbrothers) Kubernetes に これから⼊るかもしれない注⽬機能! !"!!#$$%&'
  2. 2. @superbrothers ! SUDA Kazuki / @superbrothers ▶ Preferred Networks, Inc. / エンジニア ▶ Scalar, Inc. / 技術アドバイザ ▶ Kubernetes Meetup Tokyo, K8s@home 共同主催者 ▶ Cloud Native Ambassador (CNCF) ▶ 技術評論社「Kubernetes実践⼊⾨」、「みんなのDocker/Kubernetes」共著書 ▶ オライリー「⼊⾨ Prometheus」、「Kubernetes で実践するクラウドネイティブ DevOps」監訳書 ▶ stern ツールメンテナ(https://github.com/stern/stern) 2
  3. 3. @superbrothers ! 紹介する機能は導⼊される可能性のあるものです。 ⼊るかもしれないし、⼊らないかもしれません。 少し先の Kubernetes の姿を想像して 楽しむことが⽬的のコンテンツです。 3 ⚠ 注意 ()*+,-./0123456789:;7 =>?@ABCDEFAG073HI12JK?L'
  4. 4. @superbrothers ! In-Place Update of Pod Resources #1287 KEP: マージ済み、アルファターゲット: 1.26 ▶ Pod のリソース要求/制限を Pod の再作成なしに更新できる ▶ ステートフルやバッチワークロードでは Pod を⽌めるコストが⼤きいので避けたい 4 !"$M#$$%NO;.0PQRS,LAT LULU-QVWXYZ'''<-./O[.L]^_`aE,NLT kube-apiserver ! Pod リソース要求/制限の 更新をリクエスト bccdefghi<Xj,klmB kube-apiserver ! Kubelet Container runtime ln?@/op5qrstu vw-@O@ANxyT LwVWK./O z{b<{d|e}ci<~i•€}•i<j ‚ƒ„feiz…|ef}|i•{i†…d••i†<‡ˆb<,kl ˆ…„<•i†}‰i<Š‹op5qtŒW
  5. 5. @superbrothers ! Use kubectl to view logs of system services on nodes #2258 KEP: マージ済み、アルファターゲット: 1.26 ▶ kubelet のログをノードへの SSH なしに⾒られるようにしたい! + systemd-journal と /var/log 以下のログファイルがサポートされる ▶ kubelet はすでに隠れてログビューア機能を持っていたんだけど、クライアントがなかった + systemd-journal のサポートは新たに追加された機能 5 kubectl node-logs --role master -q kubelet -q crio •dgihie<Ž•……e•<E<•…d•|fh•eh<t<i‘i•<12LAj,’u <<<<<<“”•qA0[–—˜™oš›œ5)7XQVW,•ž.0ŸL
  6. 6. @superbrothers ! Keystone containers KEP #2872 KEP: 未マージ, アルファターゲット: 未定 アプリケーションコンテナが終了したらサイドカーの状態の関わらず Pod の終了処理が開始される! ▶ Job で要のアプリケーションコンテナの実⾏が完了したのも関わらず、サイドカーコンテナが 終了しないことで Job が完了しない問題がある ▶ ワークアラウンドにアプリケーションコンテナが終了するときにサイドカーに 何らかのシグナルを送るというのあるが、こんなことはしたくない 6 apiVersion: v1 kind: Pod metadata: name: myapp-pod labels: app: myapp spec: containers: - name: myapp image: myapp command: ['do something'] lifecycle: type: Keystone - name: sidecar image: sidecar-image command: ["do something to help my app"] ¡F./<¢~}„i•f•<£¤ˆ¥<0LWu <<<<<<<<<¦§¨©ª«¬3-®,¯A°±j²³,[ $´!µ<7-QVWK./S,[E’¥~}„i•f•<£¤ˆ¥<jUWX«¬-®X1, ¶Ct·¸1•¹.2ULNE’~}„i•f•<º»<,¼½?@AG07XQ¾1/T
  7. 7. @superbrothers ! Auth API to get self user attributes #3325 KEP: マージ済み、アルファターゲット: 1.26 ⾃⾝の属性を取得するための SubjectAttributesReview API が追加され、またその API を使う kubectl auth whoami コマンドが追加される! ▶ Kubernetes にはユーザを表すリソースがない ▶ X509 証明書や ID トークンからユーザ属性を取得する認証機能を持っているが、認証後にどのよう な属性を持っているのかをユーザが確認する⼿段がこれまでなかった 7 $ kubectl alpha auth whoami ATTRIBUTE VALUE Username kubernetes-admin Groups [system:masters system:authenticated] ~i•€}•i‡••…d|e<a5`^7¿ <<<~dg•i•e‡••i††{i€}iÀ<‡ˆb<EŒÁ2V@0¿ÂÃÄ,['
  8. 8. @superbrothers ! Kubelet Evented PLEG for Better Performance #3386 KEP: マージ済み、アルファターゲット: 1.26 PLEG がポーリングからイベントを受け取るように変わって “PLEG is not healthy” が起きにくくなる! ▶ Kubelet がコンテナランタイムをポーリングしていたのをイベントを受け取るように変更 ▶ ポーリングは、ノード上のPod、コンテナの数が増えるとオーバーヘッドが⽣じて、CPU 使⽤率の 悪化、パフォーマンス低下、コンテナランタイムの過負荷等の信頼性に起因する問題を起こす 8 ˆÅ¤»<¿<ˆ…„<Å}Æi•Ç•hi<¤€i|e<»i|i•fe…•<jG0,’ È^šÉÊ^6]ËjoqarsEÌÍ[A0γ[A' Kubelet Container runtime $<ˆ…„<$<Ï…•…de}|i<,$ÐÑ7oqars Kubelet Container runtime Ò""Ð7$Ójoqars <<<<]4^ajÔÕÖ× Žz{b<{d|e}ci<~i•€}•i<»iez…|ef}|i•¤€i|e†<‡ˆb•
  9. 9. @superbrothers ! CEL for Admission Control #3488 KEP: マージ済み、アルファターゲット: 1.26 CEL を使ってビルトインリソースも含めて Validating できるようになる! ▶ Admission Webhook はパフォーマンスが悪く、サーバ運⽤も必要で管理者の負荷が⾼い ▶ CEL を kube-apiserver のインプロセスで処理することでこの課題が解決される 9 Ødefe}|Ï<,¯XLj,’ÙQ/w@Úu <<<<<<<<<<Âj3j3ÛÜ7ŒÝXL0LwXLT ‡ˆb<¿<Ødefe}|Ï<3Þß7-@2àá?@2LAT z…cc…|<¤‘ƒ•i††}…|<Åf|ÏdfÏi<,<»……Ïhi<E¦Î12¾[ apiVersion: admissionregistration.k8s.io/v1alpha1 kind: ValidatingAdmissionPolicy metadata: name: "replicalimit-policy.example.com" spec: paramSource: group: rules.example.com kind: ReplicaLimit version: v1 matchConstraints: resourceRules: - apiGroups: ["apps"] apiVersions: ["v1"] operations: ["CREATE", "UPDATE"] resources: ["deployments"] validations: - name: max-replicas expression: "object.spec.replicas <= params.maxReplicas" messageExpression: "'object.spec.replicas must be no greater than ' + string(params.maxReplicas)" reason: Invalid apiVersion: admissionregistration.k8s.io/v1 kind: PolicyBinding metadata: name: "replicalimit-binding-test.example.com" spec: policy: "replicalimit-policy.example.com" params: "replica-limit-test.example.com" matchResources: namespaceSelectors: - key: environment, operator: In, values: ["test"] apiVersion: rules.example.com/v1 kind: ReplicaLimit metadata: name: "replica-limit-test.example.com" maxReplicas: 3 ¢â•}|Ï<ã…d•<äÀ|<z{å¥<æç]^0u <<<<<<<<<<<<<<<<èÚ@2LA
  10. 10. @superbrothers ! Fine-grained SupplementalGroups control #3619 KEP: 未マージ、アルファターゲット: 未定 PodSecurityContext.SupplementalGroups をコンテナイメージの内容を問わず強制する! ▶ SupplementalGroups は追加の Linux グループを上書きするのではなく追加する実装になっている + Container Runtime shim の実装によるが、containerd と cri-o はそう実装されている ▶ この KEP は、指定された SupplementalGroups で上書きする機能を提案している 10 ·¸[Aéê7ëL2<ˆìí<NO—˜™oš›]î™5012ïð1/E’u <<<<<<<ñò0xy?@/j,<£¤ˆ<012¶C·¸t°±ó' コンテナイメージ UID: 1000 GID: 1000 Groups: 3000, 4000 Pod runAsUser: 1000 runAsGroup: 2000 SupplementalGroups: 5000 UID: 1000 GID: 2000 Groups: 3000, 4000, 5000 È^šÉ]ô5õj<»•…dƒ†<7u ~dƒƒhici|efh»•…dƒ†<E·¸?@2A
  11. 11. 機械学習プラットフォームエンジニア We're hiring! https://www.preferred.jp/ja/careers/ ▶ ⾃由度・拡張性・使いやすさのトレードオフが取れた⼤規模機械学習プラットフォームの機能設計と開発 + 例: 機械学習ワークフローツール、実験管理ツール、GPUやMN-Core向け統合開発環境の構築 ▶ ⼤規模機械学習プラットフォームの運⽤と運⽤改善(⾃動化等) + 例: ⾃動サーバプロビジョニング、パブリッククラウド連携による運⽤効率化、 インフラ健全性の⾃動診断と保守省⼒化 ▶ ⼤規模機械学習プラットフォーム上での計算資源(GPU, MN-Coreを含む)配分の最適化 + 例: Kubernetes Schedulerの機能拡張、リソース利⽤量制限拡張の開発 ▶ 最先端の分散計算基盤技術の Proof of Concept 構築及びプラットフォームでの実⽤化 + 例: Kubernetes上での分散強化学習実⾏ツール

×