Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Speaker Deck
PRO
Sign in
Sign up for free
Managing Kubernetes のススメ(1)
nwiizo
October 03, 2019
4
1.2k
Managing Kubernetes のススメ(1)
2019/10/03 Managing Kubernetes のススメ (社内勉強会用資料)
nwiizo
October 03, 2019
Tweet
Share
More Decks by nwiizo
See All by nwiizo
セキュア・バイ・デザインの鳴くところ
nwiizo
1
200
cobra は便利になっている
nwiizo
0
260
ProtocolBuffers/gRPCを安全に書き進めるためのエトセトラ
nwiizo
1
1k
あるいはサイドカーでいっぱいの海
nwiizo
1
500
Dapr の概念と実装から学ぶ Observability への招待
nwiizo
1
450
JJUGに向けて再変更/公演 CloudNativeな時代に求められる Webサービス基盤モデルの再考
nwiizo
0
450
CloudNativeな時代に求められる Webサービス基盤モデルの再考
nwiizo
6
4.2k
インフラエンジニアが学んだ Go言語での並行処理失敗パターン
nwiizo
2
1.3k
SREの車窓から
nwiizo
0
950
Featured
See All Featured
Embracing the Ebb and Flow
colly
75
3.6k
ParisWeb 2013: Learning to Love: Crash Course in Emotional UX Design
dotmariusz
101
6.2k
JavaScript: Past, Present, and Future - NDC Porto 2020
reverentgeek
38
3.6k
Imperfection Machines: The Place of Print at Facebook
scottboms
254
12k
The Art of Programming - Codeland 2020
erikaheidi
36
11k
Building Your Own Lightsaber
phodgson
96
4.9k
In The Pink: A Labor of Love
frogandcode
132
21k
Rails Girls Zürich Keynote
gr2m
87
12k
CSS Pre-Processors: Stylus, Less & Sass
bermonpainter
349
27k
Adopting Sorbet at Scale
ufuk
65
7.8k
Build your cross-platform service in a week with App Engine
jlugia
221
17k
"I'm Feeling Lucky" - Building Great Search Experiences for Today's Users (#IAC19)
danielanewman
217
21k
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