- title: 一晩でKubernetesを覚えて帰ろう。ワンナイトBootCamp! cndjp#10 https://cnd.connpass.com/event/123046/
- date: 2019-03-25
- place: Oracle Corp.
- tags: cndjp
- categories: study, meetup
個人的なメモ書きで内容を保証するものではありません
Kubernetesってなにそれおいしいの?という人向けの超入門 - Speaker Deck
-
k8sとは
- コンテナオーケストレーションツール
-
コンテナとは
- コンテナ型仮想化
- 一種の仮想マシン
- 容量が小さい
- 動作が軽い
-
インストールやセットアップ、構築が複雑なものを一瞬で構築可能
-
軽量なため、数が増えすぎる
-
運用課題
- 大量のコンテナに対して運用オペレーションを行う必要がある
- リソースの空き状況に余裕があるホストが必要
- コンテナ同士の連携
- それを解決するのがコンテナオーケストレーション
-
コンテナオーケストレーションが実現すること
- スケールアウトの自動化(別々のHWでデプロイしてくれる、コンテナが停止したら自動で起動してくれるなど)
-
mesosとかよりも良いところ
- コンテナ運用の効率化、高度化、メトリクス取得や監視、可視化、コンテナのログ、トラフィックの制御
-
適用領域の拡大
-
宣言的オペレーションとIaC
- マニフェストファイルを使うことで一律で動かすことが可能
Kubernetesの基礎.pdf - Speaker Deck
-
k8s の全体像の基本
-
kubctl
-
master
- k8sを管理するコンポーネント群/ マルチクラスター含む
-
etcd clister
- 高信頼性KVS、k8sのデータが保存される
-
node
- コンテナが配置されるサーバ群
-
masterコンポーネント
- APIサーバ
- etcdへのWrite/Read 複数台での冗長化可能
- control Manager
- デプロイするコンテナを管理する
- Scheduler
- どこにコンテナを配置するかを決める。
- APIサーバ
-
Nodeコンポーネント
- コンテナランタイム
- ほぼDocker、OpenShiftも可能かも
- Kubelet
- Node上のエージェント
- コンテナの起動停止を行う
- kube-proxy
- コンテナとの接続を保証するプロキシ
- コンテナランタイム
-
何となく以下のような分類としてとらえる(公式ドキュメントもあいまいなので)
- Master
- APIサーバ
- control Manager
- Scheduler
- Contorl Plane Components
- APIサーバ
- control Manager
- Scheduler
- kubectl
- kube-proxy
- Master
masterはetcdに情報を書き込んで、その情報をもとにNodeへ反映するのを繰り返している。 etcdが心臓部
-
kubeadmでオンプレに容易に環境構築可能
-
学習コスト高い
-
Workload一覧
- Pod
- コンテナデプロイの最小単位
- 1個のPodに複数のコンテナを定義できる(sidecar)
- 少しづつデプロイするのがおすすめ
- Replicaset
- デプロイしたPod数を維持するリソース
- Podに付与されているLabelを意識してReplicaSetを設定。1個のPodに複数のLabelを付与可能なので、目的のチアぐPodのLabelの組み合わせがかぶらないように注意が必要
- Podが死んだ場合でも指定した個数になるように管理する。
- Deployment
- ローリングアップデートするためのReplicaSetを管理するリソース
- DaemmonSet
- StatfulSEt
- Job
- cronjob
- Pod
-
Configurationの一覧
- configmap
- 設定情報をKev-value形式で保持するリソース
- 作り方
- Manifest
- secret
* opaque
* key-value形式で機密情報を保持
* 扱い方はconfigmapと同じ
- 値がBase64エンコード、tmpfsに保存される
- ID/Passを保存するなどの使い方、権限管理や管理場所をきちんとしないと意味がない
- configmap
-
Discorvery/LB
- ClusetrIP
- クラスタ内のアクセスを保証する
- クラスタ内のPodへのアクセスをLBする
- Service名で名前解決してクラスタ内のPodへアクセスする
- クラスタ内のアクセスを保証する
- NodPort
- クラスタ外のクラスタのPortを指定してアクセスする
- クラスタのすべてのNodeを特定す
- クラスタ外のクラスタのPortを指定してアクセスする
- ClusetrIP
-
NameSpace
- 1つのクラスタの中を仮想クラスタで分けることができる
-
Manifest中心のオペレーション
- Manifiestなしでもデプロイできるが状態がわからなくなるので使うほうが良い
Kubernetesの基本的な操作を体験しよう - Oracle Cloud - PaaS ドキュメント
- K8sを動かすデモ(資料なし)
what happens when k8s journy - Speaker Deck
- すごく良い発表だったようですが自分のk8s力が足らずあまり理解できなかったので資料を読み返す...