Submit Search
Upload
Kubernetes ときどき Serverless -- cndjp第1回勉強会
•
Download as PPTX, PDF
•
7 likes
•
2,665 views
Hiroshi Hayakawa
Follow
2017/11/22 開催したcndjp第1回勉強会の資料です。 Kubernetesの基礎的な内容と、FaaSフレームワークのFn Projectの紹介。
Read less
Read more
Technology
Report
Share
Report
Share
1 of 81
Download now
Recommended
Kubernetes × 可用性 -- cndjp第3回勉強会
Kubernetes × 可用性 -- cndjp第3回勉強会
Hiroshi Hayakawa
Kubernetes in プロダクション! -- cndjp第2回
Kubernetes in プロダクション! -- cndjp第2回
Hiroshi Hayakawa
はじめてのDockerパーフェクトガイド(2017年版)
はじめてのDockerパーフェクトガイド(2017年版)
Hiroshi Hayakawa
Infrakitの話とk8s+GPUの話
Infrakitの話とk8s+GPUの話
Yuji Oshima
ひしめき合うOpen PaaSを徹底解剖! PaaSの今と未来
ひしめき合うOpen PaaSを徹底解剖! PaaSの今と未来
Kazuto Kusama
最近のKubernetesとDocker Machine/Swarmの話
最近のKubernetesとDocker Machine/Swarmの話
Kazuto Kusama
Docker, Kubernetes and OpenShift v3
Docker, Kubernetes and OpenShift v3
Emma Haruka Iwao
コンテナ事例 CircleCI, Cucumber-Chef
コンテナ事例 CircleCI, Cucumber-Chef
Yukihiko SAWANOBORI
Recommended
Kubernetes × 可用性 -- cndjp第3回勉強会
Kubernetes × 可用性 -- cndjp第3回勉強会
Hiroshi Hayakawa
Kubernetes in プロダクション! -- cndjp第2回
Kubernetes in プロダクション! -- cndjp第2回
Hiroshi Hayakawa
はじめてのDockerパーフェクトガイド(2017年版)
はじめてのDockerパーフェクトガイド(2017年版)
Hiroshi Hayakawa
Infrakitの話とk8s+GPUの話
Infrakitの話とk8s+GPUの話
Yuji Oshima
ひしめき合うOpen PaaSを徹底解剖! PaaSの今と未来
ひしめき合うOpen PaaSを徹底解剖! PaaSの今と未来
Kazuto Kusama
最近のKubernetesとDocker Machine/Swarmの話
最近のKubernetesとDocker Machine/Swarmの話
Kazuto Kusama
Docker, Kubernetes and OpenShift v3
Docker, Kubernetes and OpenShift v3
Emma Haruka Iwao
コンテナ事例 CircleCI, Cucumber-Chef
コンテナ事例 CircleCI, Cucumber-Chef
Yukihiko SAWANOBORI
Infrakit Docker_Tokyo_meetup
Infrakit Docker_Tokyo_meetup
Yuji Oshima
Kubernetesにまつわるエトセトラ(主に苦労話)
Kubernetesにまつわるエトセトラ(主に苦労話)
Works Applications
Kubernetes introduction
Kubernetes introduction
DAEBUM LEE
KubernetesでGPUクラスタを管理したい
KubernetesでGPUクラスタを管理したい
Yuji Oshima
はじめてのCF buildpack
はじめてのCF buildpack
Kazuto Kusama
Kubernetes超入門 with java
Kubernetes超入門 with java
Yasunari Tanaka
Dockerの基本と応用~快適コンテナライフを実現するArukas~
Dockerの基本と応用~快適コンテナライフを実現するArukas~
Masahito Zembutsu
Reading NATS
Reading NATS
Katsunori Kawaguchi
普通のRailsアプリをdockerで本番運用する知見
普通のRailsアプリをdockerで本番運用する知見
zaru sakuraba
Cloud Native をやっていくにはどう学んでいくかをみんなで考えてみる
Cloud Native をやっていくにはどう学んでいくかをみんなで考えてみる
YASUKAZU NAGATOMI
これからのOpenShiftの話をしよう
これからのOpenShiftの話をしよう
Kazuto Kusama
Dockerの期待と現実~Docker都市伝説はなぜ生まれるのか~
Dockerの期待と現実~Docker都市伝説はなぜ生まれるのか~
Masahito Zembutsu
新しいOpenShiftのしくみを調べてみた
新しいOpenShiftのしくみを調べてみた
Kazuto Kusama
Webアプリ開発向け ゆるふわDocker使いが Cloud Naive開発に必要なetc.
Webアプリ開発向け ゆるふわDocker使いが Cloud Naive開発に必要なetc.
YASUKAZU NAGATOMI
Jenkins with Docker
Jenkins with Docker
Yahoo!デベロッパーネットワーク
Cloudn PaaSチームのChatOps実践
Cloudn PaaSチームのChatOps実践
Kazuto Kusama
Kubernetesを触ってみた
Kubernetesを触ってみた
Kazuto Kusama
Docker PaaSとしての OpenShift, Deis, Flynn比較
Docker PaaSとしての OpenShift, Deis, Flynn比較
Kazuto Kusama
VagrantユーザのためのDocker入門
VagrantユーザのためのDocker入門
Masashi Shinbara
【dots. IT勉強会】開発環境のDocker化
【dots. IT勉強会】開発環境のDocker化
Yuki Kanazawa
Kubernetes Meetup Tokyo #8 Self-hosted Kubernetes を調べてみた
Kubernetes Meetup Tokyo #8 Self-hosted Kubernetes を調べてみた
Akihito Inoh
Kubernetesのしくみ やさしく学ぶ 内部構造とアーキテクチャー
Kubernetesのしくみ やさしく学ぶ 内部構造とアーキテクチャー
Toru Makabe
More Related Content
What's hot
Infrakit Docker_Tokyo_meetup
Infrakit Docker_Tokyo_meetup
Yuji Oshima
Kubernetesにまつわるエトセトラ(主に苦労話)
Kubernetesにまつわるエトセトラ(主に苦労話)
Works Applications
Kubernetes introduction
Kubernetes introduction
DAEBUM LEE
KubernetesでGPUクラスタを管理したい
KubernetesでGPUクラスタを管理したい
Yuji Oshima
はじめてのCF buildpack
はじめてのCF buildpack
Kazuto Kusama
Kubernetes超入門 with java
Kubernetes超入門 with java
Yasunari Tanaka
Dockerの基本と応用~快適コンテナライフを実現するArukas~
Dockerの基本と応用~快適コンテナライフを実現するArukas~
Masahito Zembutsu
Reading NATS
Reading NATS
Katsunori Kawaguchi
普通のRailsアプリをdockerで本番運用する知見
普通のRailsアプリをdockerで本番運用する知見
zaru sakuraba
Cloud Native をやっていくにはどう学んでいくかをみんなで考えてみる
Cloud Native をやっていくにはどう学んでいくかをみんなで考えてみる
YASUKAZU NAGATOMI
これからのOpenShiftの話をしよう
これからのOpenShiftの話をしよう
Kazuto Kusama
Dockerの期待と現実~Docker都市伝説はなぜ生まれるのか~
Dockerの期待と現実~Docker都市伝説はなぜ生まれるのか~
Masahito Zembutsu
新しいOpenShiftのしくみを調べてみた
新しいOpenShiftのしくみを調べてみた
Kazuto Kusama
Webアプリ開発向け ゆるふわDocker使いが Cloud Naive開発に必要なetc.
Webアプリ開発向け ゆるふわDocker使いが Cloud Naive開発に必要なetc.
YASUKAZU NAGATOMI
Jenkins with Docker
Jenkins with Docker
Yahoo!デベロッパーネットワーク
Cloudn PaaSチームのChatOps実践
Cloudn PaaSチームのChatOps実践
Kazuto Kusama
Kubernetesを触ってみた
Kubernetesを触ってみた
Kazuto Kusama
Docker PaaSとしての OpenShift, Deis, Flynn比較
Docker PaaSとしての OpenShift, Deis, Flynn比較
Kazuto Kusama
VagrantユーザのためのDocker入門
VagrantユーザのためのDocker入門
Masashi Shinbara
【dots. IT勉強会】開発環境のDocker化
【dots. IT勉強会】開発環境のDocker化
Yuki Kanazawa
What's hot
(20)
Infrakit Docker_Tokyo_meetup
Infrakit Docker_Tokyo_meetup
Kubernetesにまつわるエトセトラ(主に苦労話)
Kubernetesにまつわるエトセトラ(主に苦労話)
Kubernetes introduction
Kubernetes introduction
KubernetesでGPUクラスタを管理したい
KubernetesでGPUクラスタを管理したい
はじめてのCF buildpack
はじめてのCF buildpack
Kubernetes超入門 with java
Kubernetes超入門 with java
Dockerの基本と応用~快適コンテナライフを実現するArukas~
Dockerの基本と応用~快適コンテナライフを実現するArukas~
Reading NATS
Reading NATS
普通のRailsアプリをdockerで本番運用する知見
普通のRailsアプリをdockerで本番運用する知見
Cloud Native をやっていくにはどう学んでいくかをみんなで考えてみる
Cloud Native をやっていくにはどう学んでいくかをみんなで考えてみる
これからのOpenShiftの話をしよう
これからのOpenShiftの話をしよう
Dockerの期待と現実~Docker都市伝説はなぜ生まれるのか~
Dockerの期待と現実~Docker都市伝説はなぜ生まれるのか~
新しいOpenShiftのしくみを調べてみた
新しいOpenShiftのしくみを調べてみた
Webアプリ開発向け ゆるふわDocker使いが Cloud Naive開発に必要なetc.
Webアプリ開発向け ゆるふわDocker使いが Cloud Naive開発に必要なetc.
Jenkins with Docker
Jenkins with Docker
Cloudn PaaSチームのChatOps実践
Cloudn PaaSチームのChatOps実践
Kubernetesを触ってみた
Kubernetesを触ってみた
Docker PaaSとしての OpenShift, Deis, Flynn比較
Docker PaaSとしての OpenShift, Deis, Flynn比較
VagrantユーザのためのDocker入門
VagrantユーザのためのDocker入門
【dots. IT勉強会】開発環境のDocker化
【dots. IT勉強会】開発環境のDocker化
Similar to Kubernetes ときどき Serverless -- cndjp第1回勉強会
Kubernetes Meetup Tokyo #8 Self-hosted Kubernetes を調べてみた
Kubernetes Meetup Tokyo #8 Self-hosted Kubernetes を調べてみた
Akihito Inoh
Kubernetesのしくみ やさしく学ぶ 内部構造とアーキテクチャー
Kubernetesのしくみ やさしく学ぶ 内部構造とアーキテクチャー
Toru Makabe
Kubernetesの良さを活かして開発・運用!Cloud Native入門 / An introductory Cloud Native #osc19tk
Kubernetesの良さを活かして開発・運用!Cloud Native入門 / An introductory Cloud Native #osc19tk
whywaita
kube-system落としてみました
kube-system落としてみました
Shuntaro Saiba
Webアプリ開発向け ゆるふわDocker使いがCloud Naive開発に必要そうなetc.
Webアプリ開発向け ゆるふわDocker使いがCloud Naive開発に必要そうなetc.
YASUKAZU NAGATOMI
Azure で Kubernetes を使う実践的なテクニック
Azure で Kubernetes を使う実践的なテクニック
Tetsuya OHIRA
Kubernetes meetup-tokyo-13-customizing-kubernetes-for-ml-cluster
Kubernetes meetup-tokyo-13-customizing-kubernetes-for-ml-cluster
Preferred Networks
K8s meetup containerized_cloud_foundry
K8s meetup containerized_cloud_foundry
JUNICHI YOSHISE
Infra: Kubernetes and GKE, Network
Infra: Kubernetes and GKE, Network
Kuma Arakawa
Introduction of Kubernetes & Rancher
Introduction of Kubernetes & Rancher
cyberblack28 Ichikawa
Kubernetes ControllerをScale-Outさせる方法 / Kubernetes Meetup Tokyo #55
Kubernetes ControllerをScale-Outさせる方法 / Kubernetes Meetup Tokyo #55
Preferred Networks
k3s のすすめ
k3s のすすめ
KokiMakita1
CyberAgentのインフラについて メディア事業編 #catechchallenge
CyberAgentのインフラについて メディア事業編 #catechchallenge
whywaita
ざっくり始めるCloud Native開発
ざっくり始めるCloud Native開発
YASUKAZU NAGATOMI
Dockerだけではないコンテナのはなし
Dockerだけではないコンテナのはなし
Katsunori Kanda
20171112 OSS on Azure another story and more
20171112 OSS on Azure another story and more
Takayoshi Tanaka
Kubernetes雑にまとめてみた 2020年8月版
Kubernetes雑にまとめてみた 2020年8月版
VirtualTech Japan Inc.
Jenkins study jenkins build-cicdi
Jenkins study jenkins build-cicdi
昌桓 李
[OracleCodeTokyo2019] Kubernetesで実現する運用自動化の新しいアプローチとは
[OracleCodeTokyo2019] Kubernetesで実現する運用自動化の新しいアプローチとは
Koto Shigeru
はてなにおける継続的デプロイメントの現状と Docker の導入
はてなにおける継続的デプロイメントの現状と Docker の導入
Yu Nobuoka
Similar to Kubernetes ときどき Serverless -- cndjp第1回勉強会
(20)
Kubernetes Meetup Tokyo #8 Self-hosted Kubernetes を調べてみた
Kubernetes Meetup Tokyo #8 Self-hosted Kubernetes を調べてみた
Kubernetesのしくみ やさしく学ぶ 内部構造とアーキテクチャー
Kubernetesのしくみ やさしく学ぶ 内部構造とアーキテクチャー
Kubernetesの良さを活かして開発・運用!Cloud Native入門 / An introductory Cloud Native #osc19tk
Kubernetesの良さを活かして開発・運用!Cloud Native入門 / An introductory Cloud Native #osc19tk
kube-system落としてみました
kube-system落としてみました
Webアプリ開発向け ゆるふわDocker使いがCloud Naive開発に必要そうなetc.
Webアプリ開発向け ゆるふわDocker使いがCloud Naive開発に必要そうなetc.
Azure で Kubernetes を使う実践的なテクニック
Azure で Kubernetes を使う実践的なテクニック
Kubernetes meetup-tokyo-13-customizing-kubernetes-for-ml-cluster
Kubernetes meetup-tokyo-13-customizing-kubernetes-for-ml-cluster
K8s meetup containerized_cloud_foundry
K8s meetup containerized_cloud_foundry
Infra: Kubernetes and GKE, Network
Infra: Kubernetes and GKE, Network
Introduction of Kubernetes & Rancher
Introduction of Kubernetes & Rancher
Kubernetes ControllerをScale-Outさせる方法 / Kubernetes Meetup Tokyo #55
Kubernetes ControllerをScale-Outさせる方法 / Kubernetes Meetup Tokyo #55
k3s のすすめ
k3s のすすめ
CyberAgentのインフラについて メディア事業編 #catechchallenge
CyberAgentのインフラについて メディア事業編 #catechchallenge
ざっくり始めるCloud Native開発
ざっくり始めるCloud Native開発
Dockerだけではないコンテナのはなし
Dockerだけではないコンテナのはなし
20171112 OSS on Azure another story and more
20171112 OSS on Azure another story and more
Kubernetes雑にまとめてみた 2020年8月版
Kubernetes雑にまとめてみた 2020年8月版
Jenkins study jenkins build-cicdi
Jenkins study jenkins build-cicdi
[OracleCodeTokyo2019] Kubernetesで実現する運用自動化の新しいアプローチとは
[OracleCodeTokyo2019] Kubernetesで実現する運用自動化の新しいアプローチとは
はてなにおける継続的デプロイメントの現状と Docker の導入
はてなにおける継続的デプロイメントの現状と Docker の導入
Recently uploaded
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
Toru Tamaki
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
CRI Japan, Inc.
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
atsushi061452
Utilizing Ballerina for Cloud Native Integrations
Utilizing Ballerina for Cloud Native Integrations
WSO2
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
CRI Japan, Inc.
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
iPride Co., Ltd.
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
Toru Tamaki
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
iPride Co., Ltd.
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
sn679259
新人研修 後半 2024/04/26の勉強会で発表されたものです。
新人研修 後半 2024/04/26の勉強会で発表されたものです。
iPride Co., Ltd.
Recently uploaded
(10)
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
Utilizing Ballerina for Cloud Native Integrations
Utilizing Ballerina for Cloud Native Integrations
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
新人研修 後半 2024/04/26の勉強会で発表されたものです。
新人研修 後半 2024/04/26の勉強会で発表されたものです。
Kubernetes ときどき Serverless -- cndjp第1回勉強会
1.
#cndjp1
2.
ごあいさつ
3.
自己紹介 • 早川 博(はやかわ
ひろし) • 日本オラクル所属 • Pre-Sales Engineer / Tech Evangelist (new!) • Java SE/EE, Microservices/DevOps @hhiroshell
4.
この勉強会について • cndjp -
Cloud Native Developers JP • Cloud NativeなOSSスタックを対象とした勉強会シリーズ • オープンソース中心 • 楽しく学ぶ、深く学ぶ CNCFが出しているCloud Native Landscapeに載っている ソフトウェア(→次ページ)
5.
cndjp #1-#3 cndjp #4~
6.
Kubernetes ときどき Serverless #cndjp1
7.
前半戦 Kubernetes基礎
8.
前半戦のメニュー 1. Kubernetesってなんですか 2. Kubernetesの全体像を理解する 3.
Kubernetesクラスター大解剖
9.
1. Kubernetesってなんですか
10.
こういうことがしたい 大きなリソースのプール
11.
こういうことがしたい 動け!
12.
こういうことがしたい コンテナ化されたアプリ はい!
13.
こういうことがしたい コンテナ化されたアプリ はい!
14.
こういうことがしたい 利用者からのリクエスト わー!
15.
こういうことがしたい がんばれ!
16.
こういうことがしたい はい!
17.
こういうことがしたい アップグレード!
18.
こういうことがしたい はい! 勝手にローリングアップデート
19.
こういうことがしたい
20.
こういうことがしたい
21.
こういうことがしたい わー! コンテナが落ちたら自動で新たに立ち上げる
22.
23.
こういうことができる • リソースの抽象化 • どこにデプロイするか意識しな くてよい •
いいように分散して配置してく れる • 外部アクセスのマネージ • アプリケーションの公開 • ルーティング/ロードバランシン グ • スケーリング • 手動/自動 • 障害時のコンテナの再立上げ • 複数コンテナをまとめて制御
24.
2. Kubernetesの全体像を理解する
25.
Kubernetesの全体像 k8sクラスター >_ kubectl (CLI) マシンとネットワーク
26.
kubectl • Kubernetesクラスターの管理操作を行うためのコマンドライン インターフェース • Kubernetesクラスターと戯れるときの最も基本的な手段 •
コマンドをKubernetesのREST API呼び出しに変換している • (REST APIを直接呼び出すことも可能です)
27.
kubectl • 複数のクラスターもいける >_
28.
Kubernetesクラスター • クラスター本体です(あたりまえ) • 次章で詳しく解説
29.
3. Kubernetesクラスター大解剖
30.
Kubernetesの全体像 k8sクラスター >_ kubectl (CLI) マシンとネットワーク
31.
Kubernetesクラスターの構成 k8sクラスター k8s Objects ・k8sの機能の構成要素 - Node,
Pod, Service… k8s Control Plane ・k8s Objectsを実現する実装 - マシン上で稼働する プロセス群 - k8sの要件に沿って構成 されたネットワーク
32.
Kubernetesクラスターの構成 k8sクラスター Kubernetes Control Plane ・k8s
Objectsを実現する実装 - マシン上で稼働する プロセス群 - k8sの要件に沿って構成 されたネットワーク k8s Objects ・k8sの機能の構成要素 - Node, Pod, Service…
33.
Kubernetes Objects • Node •
Pod • Service • Label/Label Selector • Deployment • ReplicaSet • DaemonSet …他にもありますが、まずはこの辺から。
34.
Node • クラスターに属するマシン を表すオブジェクト • クラスターの管理を担当す るマスターノードと、アプ リケーションを稼働させる メンバーノードがある メンバーノード マスターノード
35.
Pod • Node内で稼働するコンテ ナのセット • 生成/スケールアウト/破棄 等のライフサイクルの単位 •
内包する複数のコンテナは、 必ず同じノード上で稼働 • 1つのPodに1つのクラスタ 内IPが割り当てられる ポッド コンテナ
36.
Service • PodへのTCP/UDPアクセ スの制御を行うオブジェク ト • Podへのルーティング、 ロードバランシングの役割 を持つ •
クラスター外部への公開、 クラスター内の通信など、 用途に応じて複数のタイプ から選択可能 サービス クラスター外から のリクエスト
37.
Label/Label Selector • k8sオブジェクトを管理し易 いようにグルーピングする仕 組み •
Label: • k8sオブジェクトにアタッチで きるkey/valueペアのセット • Label Selector: • Labelの設定値の条件を指定す る情報。条件に該当するものを グループとして識別する "labels": { "tier" : "frontend", "partition" : "customerA" } "labels": { "tier" : “backend", "partition" : "customerA" } "labels": { "tier" : "frontend", "partition" : "customerB" } Label Label partition = customerA Label Selector
38.
Label/Label Selector • Serviceがルーティングの対象を識別するためにも利用される サービス partition
= customerA クラスター外から のリクエスト
39.
Label/Label Selector • Serviceがルーティングの対象を識別するためにも利用される サービス partition
= customerA クラスター外から のリクエスト
40.
Deployment • Podのライフサイクル(生 成/更新/破棄)を制御する オブジェクト • Podを起動したり、スケー ルさせたりするときに、対 応するDeploymentに対し て操作を行う デプロイメント D
41.
DaemonSet • 全てのメンバーノードで共 通のPodを稼働させる仕組 み • ノードが追加されると自動 で所定のPodが起動 •
ノード共通の機能を乗せた いときに利用 • ログ収集(fluentd, logstach) • ノードの監視用のエージェ ント(Prometheus, collectd) DaemonSet
42.
Kubernetes Objects ・k8sの機能の構成要素 - Node,
Pod, Service… Kubernetesクラスターの構成 k8sクラスター k8s Control Plane ・k8s Objectsを実現する実装 - マシン上で稼働する プロセス群 - k8sの要件に沿って構成 されたネットワーク
43.
Kubernetes Control Plane •
マシン上で稼働するプロセス群 • k8sの要件に沿って構成されたネットワーク • e.g. コンテナ同士の通信がNATなしで疎通すること • マスターノード • kube-apiserver • etcd • kube-controller-manager • kube-scheduler … • メンバーノード • kubelet • kube-proxy • Docker …
44.
Control Planeで稼働するプロセス群(主要なもの) REST API呼び出し API
Server kube-proxy cotrollers kube-controller-manager kubelet マスターノードメンバーノード Docker メンバーノード への指示
45.
メンバーノードで稼働するプロセス • kubelet • メンバーノードとしての基本 機能を実現する •
Podの生成/更新/破棄などのコ ントロール • 各種ステータスのレポート • kube-proxy • ネットワーク周りのルールを 制御 • Docker • いわずもがなのコンテナ本体 kube-proxy kubelet Docker
46.
マスターノードで稼働するプロセス • kube-apiserver • Kubernetesクラスターのフロント エンド。APIを提供 •
kube-controller-manager • クラスターの制御を行う各種 controllerを動作させる • controllers • Node Controller • Replication Controller • Endpoints Controller • Service Account & Token Controllers API Server cotrollers kube-controller-manager
47.
More Advanced… • Control
Planeの構成要素をきっちり把握するには、カスタムク ラスターのインストールマニュアルを読むのがおすすめ • Creating a Custom Cluster from Scratch • https://kubernetes.io/docs/getting-started-guides/scratch/
48.
ハンズオン (1) ローカルPCにKubernetesクラスターを構築してみよう
49.
後半戦 Kubernetes実践 ときどき Serverless
50.
後半戦のメニュー 1. kubectlをもう少し 2. アプリケーションを公開するには 3.
Kubernetes meets Serverless
51.
kubectlをもう少し
52.
kubectlの設定情報 • kubectlの設定情報の表示 • 設定情報の実態は
~/.kube/config • 設定の追加/上書き(の一例) > kubectl config view > kubectl config set-cluster [OPTIONS]
53.
k8sオブジェクトの情報を取得する(1) • Human Readableな形式で取得するとき
-> get, describe • オブジェクトの一覧 > kubectl get [オブジェクトの種類] • オブジェクトの詳細情報 > kubectl describe [オブジェクトの種類] [オブジェクトの名前]
54.
k8sオブジェクトの情報を取得する(2) • Machine Friendlyな形式で取得するとき
-> getと-oオプション • オブジェクトの詳細情報 > kubectl get [オブジェクトの種類] [オブジェクトの名前] –o json
55.
k8sオブジェクトを操作する(1) • コマンド方式 • オブジェクトに反映したい状態を、コマンドとそのオプションで指定 •
オブジェクトの作成の例: • 構成ファイルを指定してオブジェクトを操作する方式 • 命令的/宣言的 • オブジェクトに反映したい状態を、構成ファイルで指定 • .yaml または .json • ソースコード管理との親和性が良い > kubectl run nginx --image nginx
56.
構成ファイルによるオブジェクトの操作 • 命令的方式 • コマンド(create,
delete, replace…)と構成ファイルを指定 • 指定した内容にオブジェクトの状態が変わる • オブジェクトを作成する例: • 宣言的方式 • 適切なコマンド(操作)をkubectlが自動で検出 • オブジェクトの状態を上書き。構成ファイルに明記しなかった部分は既存の 状態が維持される • オブジェクトを作成する例: > kubectl create –f nginx.yaml > kubectl apply –f configs/
57.
アプリケーションを公開する には
58.
コンテナのデプロイ • コンテナレジストリから取得するのが基本 • プライベートのレジストリを使うことも可能 k8sクラスター >_ kubectl
(CLI) コンテナ レジストリ > kubectl run …
59.
公開方法のバリエーション • APIサーバー経由でのアクセス • ServiceのNodePortタイプ •
ServiceのLoadBarancerタイプ • Ingress (beta)
60.
APIサーバー経由でのアクセス • kubectlをproxyとして稼働させて、認証なしのAPIエンドポイ ントへの経路を構成 • 所定のAPIエンドポイントにリクエストを投げるとコンテナに 届く •
お試し用。 k8sクラスター kubectl > kubectl proxy … >_ APIサーバー リクエスト
61.
ServiceのNodePortタイプ • 対象のPodにルーティングされる口を、各Node上に構成する • ポート番号は、各ノードで共通 クラスター外から のリクエスト 172.17.8.104 172.17.8.103 172.17.8.102 172.17.8.104:30159 172.17.8.102:30159 172.17.8.103:30159
62.
ServiceのLoadBalancerタイプ • GCP, AWS,
Azure上のロードバランサーを自動構成 • クラスター内にはNodePortまたは ClusterIPタイプのServiceを構成 クラスター外から のリクエスト LB
63.
Ingress • API Server上にLoadBalancerを構成して、クラスター内にリク エストをルーティング •
ロードバランシング、SSL/TLS終端等の機能を提供 • Kubernetes 1.1から利用できるが、まだBeta…
64.
ハンズオン (2) アプリケーションを公開してみよう
65.
その前に…
66.
Kubernetes meets Serverless
67.
Fn Project • http://fnproject.io/ →サーバーレス・アプリケーションを作るためのフレームワーク
68.
Open & Easy •
Open • Open Source (Apache 2.0) • マルチ言語サポート • JS, Java, Ruby, Python, Go • どこでも動く • ラップトップ、サーバー、クラウド • Easy • 全ての操作はシンプルなCLI • 考え抜かれた開発者エクスペリエンス
69.
構成 • Fn Server上にFunctionが のるDinD(Docker
in Docker)構成 • トリガーがキックされる度 に対応するFunctionのコン テナを立ち上げる • コンテナ群の管理はCLI が隠蔽 Function 1 Functio n Function 2 Functio n Fn Serverfn-app/hello-node fn-app/hello-java
70.
Fn Flow • 複数のファンクションの連結を手続き的記述で実現 Flowは現在Javaのみ対応。随時対応言語を増やして いくとのこと
71.
Fn Flow • 並列・非同期処理
72.
Fn Flow • エラーハンドリング
73.
Fn Flow • 複数のファンクションの連結を手続き的記述で実現 •
なにがいいの? テストしやすい デバッグしやすい 読んで理解しやすい エラー処理で死なない
74.
たぶん…。
75.
76.
ハンズオン (2) アプリケーションを公開してみよう
77.
次回予告
78.
次回コンテンツ 案(1) • 「Kubernetes
Network Deep Dive!」 • コンテンツ • 今回取り上げられなかった、k8sネットワーク周りを深掘り • サービス・メッシュでk8s上にインテリジェントなネットワークを
79.
次回コンテンツ 案(2) • 「Kubernetes
in プロダクション!」 • コンテンツ • 実運用を想定したk8sの使い方を学びます。例えば…。 ロードバランサーの構成方法 管理ノードの冗長化構成はどう作る? 永続化層はどうすれば? コンテナのアップデート オートスケーリング
80.
お知らせ • アンケートにご協力ください http://bit.ly/cndjp1-survey • Slackチャネルにもぜひご参加ください http://bit.ly/cndjp-slack
81.
お疲れ様でした! #cndjp1
Download now