Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
Managing Kubernetes のススメ(1)
Search
Sponsored
·
Your Podcast. Everywhere. Effortlessly.
Share. Educate. Inspire. Entertain. You do you. We'll handle the rest.
→
nwiizo
October 03, 2019
1.8k
4
Share
Managing Kubernetes のススメ(1)
2019/10/03 Managing Kubernetes のススメ (社内勉強会用資料)
nwiizo
October 03, 2019
More Decks by nwiizo
See All by nwiizo
システムは「動く」だけでは足りない 実装編 - 非機能要件・分散システム・トレードオフをコードで見る
nwiizo
4
430
システムは「動く」だけでは 足りない - 非機能要件・分散システム・トレードオフの基礎
nwiizo
30
9.8k
アーキテクチャモダナイゼーションとは何か
nwiizo
19
5.3k
【社内勉強会】新年度からコーディングエージェントを使いこなす - 構造と制約で引き出すClaude Codeの実践知
nwiizo
37
20k
技術的負債の泥沼から組織を救う3つの転換点
nwiizo
9
7k
30分でわかるアーキテクチャモダナイゼーション
nwiizo
10
7.8k
意志を実装するアーキテクチャモダナイゼーション
nwiizo
3
4.4k
おい、テックブログを書け
nwiizo
47
20k
バイブコーディングと継続的デプロイメント
nwiizo
2
1.4k
Featured
See All Featured
DBのスキルで生き残る技術 - AI時代におけるテーブル設計の勘所
soudai
PRO
64
54k
Testing 201, or: Great Expectations
jmmastey
46
8.1k
Lightning Talk: Beautiful Slides for Beginners
inesmontani
PRO
1
530
Become a Pro
speakerdeck
PRO
31
5.9k
Paper Plane (Part 1)
katiecoart
PRO
0
6.7k
How Software Deployment tools have changed in the past 20 years
geshan
0
33k
sira's awesome portfolio website redesign presentation
elsirapls
0
220
Code Review Best Practice
trishagee
74
20k
The Web Performance Landscape in 2024 [PerfNow 2024]
tammyeverts
12
1.1k
10 Git Anti Patterns You Should be Aware of
lemiorhan
PRO
659
61k
HU Berlin: Industrial-Strength Natural Language Processing with spaCy and Prodigy
inesmontani
PRO
0
320
Refactoring Trust on Your Teams (GOTO; Chicago 2020)
rmw
35
3.4k
Transcript
None
⚫ ⚫ ⚫
None
None
None
None
None
クラスターの動作方法 クラスターの調整、保護、および調整 問題が発生した場合の対応 新機能とカスタム機能でシステムを拡張する コンテナ コンテナオーケストレーション Kubernetes API 基本オブジェクト 高度な概念
バッチワークロード:ジョブと クラスタエージェントとユーティリティ コンセプト 宣言的な構成 調整またはコントローラー 暗黙的または動的なグループ化 構造 多くのコンポーネントのUnix哲学 API駆動の相互作用 構成部品 ヘッドノードコンポーネント すべてのノード上のコンポーネント スケジュールされたコンポーネント 管理性の基本特性 APIサーバーの断片 API管理 APIパス APIディスカバリー OpenAPI仕様の提供 API翻訳 リクエスト管理 リクエストの種類 リクエストのライフ APIサーバーの内部 CRD制御ループ APIサーバーのデバッグ 基本的なログ 監査ログ 追加ログの有効化 kubectlリクエストのデバッグ スケジューリングの概要 スケジューリングプロセス 述語 優先順位 高レベルアルゴリズム 対立 ラベル、アフィニティ、汚染、および許容を使用したスケジューリングの制御 ノードセレクター ノードアフィニティ 汚染と寛容 kubeadm 必要条件 kubelet コントロールプレーンのインストール kubeadmの構成 プリフライトチェック 証明書 etcd kubeconfig 汚染 ワーカーノードのインストール アドオン 段階 高可用性 アップグレード ユーザー 認証 kubeconfig サービスアカウント 残り 認可 役割ベースのアクセス制御 ロールとClusterRole RoleBindingおよびClusterRoleBinding 認可のテスト 設定 共通コントローラー PodSecurityPolicies ResourceQuota LimitRange ダイナミックアドミッションコントローラー 入場管理者の検証 入場コントローラーの変更 コンテナネットワークインターフェイス プラグインの選択 kube-proxy サービス発見 DNS 環境変数 ネットワークポリシー サービスメッシュ 監視の目標 ロギングとモニタリングの違い 監視スタックの構築 クラスターとアプリケーションからデータを取得する 複数のソースからのメトリックとログの集約 検索およびクエリのためのデータの保存 データの視覚化と相互作用 監視対象 監視機 Kubernetesの監視 監視アプリケーション ブラックボックス監視 ストリーミングログ アラート 高可用性 状態 アプリケーションデータ 永続的なボリューム ローカルデータ ワーカーノード etcd 箱舟 Kubernetes拡張ポイント クラスターデーモン クラスターデーモンの使用例 クラスタデーモンのインストール クラスタデーモンの運用上の考慮事項 ハンズオン:クラスターデーモンの作成例 クラスターアシスタント クラスターアシスタントの使用例 クラスタアシスタントのインストール クラスタアシスタントの操作上の考慮事項 ハンズオン:クラスターアシスタントの例 APIサーバーのライフサイクルの延長 APIライフサイクルを拡張するためのユースケース APIライフサイクル拡張機能のインストール ライフサイクル拡張の運用上の考慮事項 ハンズオン:ライフサイクル拡張の例 KubernetesにカスタムAPIを追加する 新しいAPIを追加するための使用例 カスタムリソース定義と集約APIサーバー カスタムリソース定義のアーキテクチャ カスタムリソース定義のインストール カスタムリソースの運用上の考慮事項 4. Kubernetes APIサーバー 2. Kubernetesの概要 1.はじめに 5.スケジューラー 6. Kubernetesのインストール 7.認証とユーザー管理 9.入場管理 8.承認 10.ネットワーキング 11. Kubernetesの監視 12.障害復旧 13. Kubernetesの拡張 14.結論 Paperback: 188 pages 3. Kubernetesのアーキテクチャ
クラスターの動作方法 クラスターの調整、保護、および調整 問題が発生した場合の対応 新機能とカスタム機能でシステムを拡張する コンテナ コンテナオーケストレーション Kubernetes API 基本オブジェクト:ポッド、レプリカセット、およびサービス 名前空間、ラベル、注釈を使用してクラスターを整理する
高度な概念:展開、イングレス、およびステートフルセット バッチワークロード:ジョブとScheduledJob クラスタエージェントとユーティリティ:DaemonSets コンセプト 宣言的な構成 調整またはコントローラー 暗黙的または動的なグループ化 構造 多くのコンポーネントのUnix哲学 API駆動の相互作用 構成部品 ヘッドノードコンポーネント すべてのノード上のコンポーネント スケジュールされたコンポーネント 管理性の基本特性 APIサーバーの断片 API管理 APIパス APIディスカバリー OpenAPI仕様の提供 API翻訳 リクエスト管理 リクエストの種類 リクエストのライフ APIサーバーの内部 CRD制御ループ APIサーバーのデバッグ 基本的なログ 監査ログ 追加ログの有効化 kubectlリクエストのデバッグ スケジューリングの概要 スケジューリングプロセス 述語 優先順位 高レベルアルゴリズム 対立 ラベル、アフィニティ、汚染、および許容を使用したスケジューリングの制御 ノードセレクター ノードアフィニティ 汚染と寛容 クベアドム 必要条件 キュベレット コントロールプレーンのインストール kubeadmの構成 プリフライトチェック 証明書 etcd kubeconfig 汚染 ワーカーノードのインストール アドオン 段階 高可用性 アップグレード ユーザー 認証 kubeconfig サービスアカウント 残り 認可 役割ベースのアクセス制御 ロールとClusterRole RoleBindingおよびClusterRoleBinding 認可のテスト 設定 共通コントローラー PodSecurityPolicies ResourceQuota LimitRange ダイナミックアドミッションコントローラー 入場管理者の検証 入場コントローラーの変更 コンテナネットワークインターフェイス プラグインの選択 kube-proxy サービス発見 DNS 環境変数 ネットワークポリシー サービスメッシュ 監視の目標 ロギングとモニタリングの違い 監視スタックの構築 クラスターとアプリケーションからデータを取得する 複数のソースからのメトリックとログの集約 検索およびクエリのためのデータの保存 データの視覚化と相互作用 監視対象 監視機 Kubernetesの監視 監視アプリケーション ブラックボックス監視 ストリーミングログ アラート 高可用性 状態 アプリケーションデータ 永続的なボリューム ローカルデータ ワーカーノード etcd 箱舟 Kubernetes拡張ポイント クラスターデーモン クラスターデーモンの使用例 クラスタデーモンのインストール クラスタデーモンの運用上の考慮事項 ハンズオン:クラスターデーモンの作成例 クラスターアシスタント クラスターアシスタントの使用例 クラスタアシスタントのインストール クラスタアシスタントの操作上の考慮事項 ハンズオン:クラスターアシスタントの例 APIサーバーのライフサイクルの延長 APIライフサイクルを拡張するためのユースケース APIライフサイクル拡張機能のインストール ライフサイクル拡張の運用上の考慮事項 ハンズオン:ライフサイクル拡張の例 KubernetesにカスタムAPIを追加する 新しいAPIを追加するための使用例 カスタムリソース定義と集約APIサーバー カスタムリソース定義のアーキテクチャ カスタムリソース定義のインストール カスタムリソースの運用上の考慮事項 4. Kubernetes APIサーバー 2. Kubernetesの概要 1.はじめに 5.スケジューラー 6. Kubernetesのインストール 7.認証とユーザー管理 9.入場管理 8.承認 10.ネットワーキング 11. Kubernetesの監視 12.障害復旧 13. Kubernetesの拡張 14.結論 Paperback: 188 pages 3. Kubernetesのアーキテクチャ
None
None
None
None
None
None
None
None
None
None
None
None
None
None
None
None
http://wwws.warnerbros.co.jp/focus/
Kubernetes Patterns Figure 1-4. Kubernetes concepts for developers
⚫ ⚫ ⚫ ⚫ ⚫ ⚫ https://kubernetes.io/docs/concepts/overview/what-is-kubernetes/
⚫ ⚫ ⚫
⚫ ⚫ ⚫
⚫ ⚫ ⚫ ⚫ ⚫ https://github.com/kubernetes/kubernetes/blob/release-1.16/ pkg/controller/replicaset/replica_set.go
⚫ ⚫ ⚫ ⚫ ⚫ ⚫ Programming Kubernetes Figure 1-2.
Kubernetes control loop オススメの文献として
⚫ ⚫ ⚫ ⚫ ⚫
None
None
⚫ ⚫ ⚫ ⚫
None
⚫ ⚫ https://kubernetes.io/docs/concepts/overview/components/
⚫ ⚫ ⚫ https://kubernetes.io/docs/concepts/overview/components/
⚫ ⚫ ⚫ https://kubernetes.io/docs/concepts/overview/components/
⚫ ⚫ ⚫ https://kubernetes.io/docs/concepts/overview/components/
⚫ ⚫ ⚫ https://kubernetes.io/docs/concepts/overview/components/
⚫ ⚫ https://kubernetes.io/docs/concepts/overview/components/
⚫ ⚫ https://kubernetes.io/docs/concepts/overview/components/
⚫ ⚫ https://kubernetes.io/docs/concepts/overview/components/
⚫ ⚫ ⚫ https://kubernetes.io/docs/concepts/overview/components/ https://github.com/kubernetes/kubernetes/tree/master/pkg/kubelet
⚫ ⚫ ⚫ ⚫ ⚫
None
None
⚫ ⚫ ⚫ ⚫ ⚫ ⚫ ⚫ ⚫ ⚫ ⚫
⚫ ⚫ ⚫ ⚫ ⚫ ⚫ ⚫ ⚫ ⚫ ⚫ ⚫ ⚫
None
None
None
None
⚫ ⚫ ⚫ ⚫ https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.16/
⚫ ⚫ ⚫ ⚫ ⚫ ⚫ https://kubernetes.io/docs/reference/command-line-tools-reference/kube-apiserver/
⚫ ⚫ ⚫ ⚫ ⚫ ⚫ ⚫ ⚫ ⚫ ⚫
⚫ https://kubernetes.io/docs/concepts/overview/kubernetes-api/
⚫ ⚫ ⚫ ⚫ ⚫ ⚫ ⚫
⚫ Programming Kubernetes chapter 2.Kubernetes API Basics より引用 Figure 7-2.
Kubernetes OIDC flow
None
None
None
None
⚫ ⚫ ⚫ ⚫ ⚫ ⚫ https://github.com/kubernetes/kubernetes/blob/release-1.16/ pkg/controller/replicaset/replica_set.go
None
https://kubernetes.io/docs/concepts/workloads/controllers/garbage-collection/ 上位resourceが下位resourceを管理する仕組みとして OwnerReferenceがある
⚫ ⚫ ⚫ ⚫ ⚫ ⚫ ⚫ ⚫ ⚫ ⚫
⚫ ⚫ ⚫ ⚫
client-go under the hood https://github.com/kubernetes/sample-controller/blob/master/docs/controller-client-go.md
⚫ ⚫ https://speakerdeck.com/govargo/under-the-kubernetes-controller-36f9b71b-9781-4846-9625-23c31da93014
None
None
https://speakerdeck.com/ytaka23/cloudnative-days-tokyo-2019
⚫ ⚫ ⚫ ⚫ ⚫ ⚫ ⚫ ⚫
⚫ ⚫ ⚫ ⚫ ⚫ ⚫ ⚫
⚫ ⚫
⚫ ⚫ ⚫
⚫ ⚫ ⚫
None
• • • • • • • • •
• • • • • • • • •
None
None
None
None
None
None
None
None
None
None
None