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
Fireside Chat
paigeccino
34
3.2k
Testing 201, or: Great Expectations
jmmastey
41
7.2k
GitHub's CSS Performance
jonrohan
1030
460k
Building Flexible Design Systems
yeseniaperezcruz
328
38k
Fight the Zombie Pattern Library - RWD Summit 2016
marcelosomers
232
17k
Building a Scalable Design System with Sketch
lauravandoore
460
33k
Building Applications with DynamoDB
mza
93
6.2k
Optimising Largest Contentful Paint
csswizardry
34
3.1k
The Cost Of JavaScript in 2023
addyosmani
47
7.3k
Bootstrapping a Software Product
garrettdimon
PRO
305
110k
How to Think Like a Performance Engineer
csswizardry
22
1.3k
Making Projects Easy
brettharned
116
6k
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