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
nwiizo
October 03, 2019
4
1.5k
Managing Kubernetes のススメ(1)
2019/10/03 Managing Kubernetes のススメ (社内勉強会用資料)
nwiizo
October 03, 2019
Tweet
Share
More Decks by nwiizo
See All by nwiizo
SREの前に
nwiizo
8
1.2k
2024年版 運用者たちのLLM
nwiizo
3
790
Platform Engineering と SRE の門
nwiizo
16
5.3k
運用者の各領域で向き合うLLM
nwiizo
1
460
可観測性ガイダンス
nwiizo
14
3.6k
書を捨てよ、現場へ出よう
nwiizo
12
11k
走馬灯のIaCは考えておいて
nwiizo
9
5.8k
SREとPlatform Engineerの交差点
nwiizo
8
6.6k
SREからPlatform Engineerへの拡大
nwiizo
15
3.8k
Featured
See All Featured
[RailsConf 2023] Rails as a piece of cake
palkan
51
4.9k
Put a Button on it: Removing Barriers to Going Fast.
kastner
59
3.5k
Producing Creativity
orderedlist
PRO
341
39k
Principles of Awesome APIs and How to Build Them.
keavy
126
17k
Writing Fast Ruby
sferik
626
61k
Faster Mobile Websites
deanohume
304
30k
Happy Clients
brianwarren
97
6.7k
Performance Is Good for Brains [We Love Speed 2024]
tammyeverts
4
380
Thoughts on Productivity
jonyablonski
67
4.3k
Build The Right Thing And Hit Your Dates
maggiecrowley
32
2.4k
How STYLIGHT went responsive
nonsquared
95
5.2k
How To Stay Up To Date on Web Technology
chriscoyier
788
250k
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