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
インフラをつくるとはどういうことなのか、 あるいはPlatform Engineeringについて
nwiizo
5
2.1k
Platform Engineeringは自由のめまい
nwiizo
4
1.9k
Site Reliability Engineering on Kubernetes
nwiizo
6
4.9k
メインテーマはKubernetes
nwiizo
2
440
SREの前に
nwiizo
12
3.5k
2024年版 運用者たちのLLM
nwiizo
5
980
Platform Engineering と SRE の門
nwiizo
17
6k
運用者の各領域で向き合うLLM
nwiizo
1
520
可観測性ガイダンス
nwiizo
14
3.9k
Featured
See All Featured
Typedesign – Prime Four
hannesfritz
40
2.5k
Visualizing Your Data: Incorporating Mongo into Loggly Infrastructure
mongodb
44
9.4k
[RailsConf 2023 Opening Keynote] The Magic of Rails
eileencodes
28
9.3k
Become a Pro
speakerdeck
PRO
26
5.1k
Fantastic passwords and where to find them - at NoRuKo
philnash
51
3k
Building a Scalable Design System with Sketch
lauravandoore
460
33k
No one is an island. Learnings from fostering a developers community.
thoeni
21
3.1k
ピンチをチャンスに:未来をつくるプロダクトロードマップ #pmconf2020
aki_iinuma
114
50k
Embracing the Ebb and Flow
colly
84
4.6k
Building Adaptive Systems
keathley
40
2.4k
Chrome DevTools: State of the Union 2024 - Debugging React & Beyond
addyosmani
3
310
How To Stay Up To Date on Web Technology
chriscoyier
790
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