SlideShare a Scribd company logo
Google Container Engine (GKE) &
Kubernetes のアーキテクチャ解説
九州インフラ交流勉強会 (Kixs) Vol.005
Proprietary + Confidential
Samir Hammoudi aka サミール
クラウドカスタマエンジニア
SEPTEMBER 2, 2017
自己紹介
Samir Hammoudi(本イベントではサミえもんw)
クラウドカスタマエンジニア(セールスエンジニアね)
Twitter: @ksimir
LinkedIn: https://www.linkedin.com/in/hammoudi/
→ スイスで7年間コンスタントとしてプライベートクラウド系のプロジェクトを担当
→ 3年半前に日本に移住、外資系大手IT ベンダーに入社
→ 2017年11月にセールスエンジニアとしてGoogle に入社
→ ゲーム会社を担当(ゲームが大好きなのでラッキー)
→ Cloud Spanner が大好き!
Copyright 2015 Google Inc
Googleでは10年間に渡り、すべてのサービスをコンテナ
で動かしてきた
毎週20億以上のコンテナを立ち上げている
Images by Connie Zhou
コンテナとは?
コンテナはアプリケーションコードとその依存性を一
つのユニットとしてまとめる
これにより、アプリケーションとインフラを疎結合にする
ことができる
• コンテナはアプリケーションとその依存性がまとまっているので、例え
ば、開発環境、テスト環境、本番環境をまたいだデプロイが容易にな
る
• オンプレミス、プライベートクラウド、パブリッククラウド等ことなる実行
環境間の移動が容易になる
コンテナ イメージ
依存性
アプリケーションコード
VM vs Container
VM
Container
なぜコンテナ?
軽量
仮想マシンに比べて
軽量でシンプル。数十ミリ秒
で起動
ポータブル
様々な実行環境に対応し、
デプロイメントが容易
効率性
リソース使用量が少なく、コ
ンピュートリソースを細分化
して効率的に利用可能
コンテナ管理の課題
Node Node
Cluster
Node
???
● 複数のノードに対するコンテナのデプロイは?
● ノード障害が発生した場合は?
● コンテナ障害が発生した場合は?
● アプリケーションのアップグレードはどうやって管理する?
Kubernetes
κυβερνήτης: Greek for “pilot” or “helmsman of a ship”
the open source cluster manager from Google
Kubernetes (k8s) とは
● “コンテナオーケストレーション”
○ コンテナ中心のインフラ
● Googleの内部システムとコンテナの運用経験に
インスパイアされている
● Runs Anywhere
● 2014年にオープンソース化
● Kubernetes やクラウドネイティブエコシステムを
管理する CNCF に寄贈
Kubernetes のアーキテクチャ
Kubernetes のアーキテクチャ
API
UI
CLI
Master
Node 1
Node 2
Node 3
Node 4
Kubernetes Master
API
UI
CLI
API
Server
Scheduler Controller
etcd
Master ノードのコンポーネント
API Server
→ kubectl は API Server を REST API で叩くコマンドツール
Scheduler
→ Pod をノードにスケジュールするコンポーネント
Controller
→ クラスタの状態を常に監視しするバックグラウンドプロセス
→ 定義された状態と異なると、それを修正するコンポーネント
etcd
→ 分散 KVS
→ クラスタの全データを格納するデータストア
Kubernetes Node
Master
Docker Engine kubelet
kube proxy
supervisord
fluentd
Pod
Pod Pod
Pod
Pod
Pod
AddonsDNS UI
Pod
Pod
Worker ノードのコンポーネント
kubelet
→ ノードのエージェント
→ Pod の YAML ファイルに基づいて、定義されたコンテナを実行し、ストレージな
どをマウントし、正常に起動していることを担保
kube-proxy
→ 各ノードで実行するネットワークプロキシ
→ サービスのIPアドレスを管理、コネクションフォワーディング
→ iptables を操作
Addons
DNS
→ クラスタ内のDNSサービス
→ Kubernetes 1.3 からビルトインのサービス
→ Service や Pod は自動的にDNSに登録される
Web UI
→ Kubernetes Dashboard
コンテナを使用するサンプルアプリ
Client
Python
Web App
Redis
Database
Kubernetes Pod
1つか複数のコンテナをデプロイする単位
● 関連するコンテナ
● 同じコンテキストで実行するコンテナ
同じ Pod のコンテナは同じホスト名を持つ
各ポッドの隔離は:
● Namespace (process isolation)
● Cgroups (リソース制御)
複数のプロセスを実行する VM の代替
Pod はデプロイ単位
Log Roller
Web Server
Machine
Host
Machine
Host
Machine
Host
Machine
Host
Machine
Host
Machine
Host
Machine
Host
Container
Agent
Container
Agent
Container
Agent
Container
Agent
Container
Agent
Container
Agent
Container
Agent
Kubernetes
Master/Scheduler
コンテナ
コンテナ
ポッド
Labels & Selectors
● 各 Kubernetes のオブジェクトに紐付けられ
るキーバリューペア
● オブジェクトのフィルタリングに使用
● オブジェクトの作成の際に設定され、いつで
も変更可能
● ラベルは API オブジェクトを繋ぐ重要なのり
○ Deployment → Pods
○ Service → Deployment
apiVersion: v1
kind: Service
metadata:
name: web-svc
labels:
name: web
app: demo
spec:
selector:
name: web
type: LoadBalancer
ports:
- port: 80
targetPort: 5000
protocol: TCP
多数のポッドを識別するには?
FE
FE
FE
FE
FE
FE
BE
BE
BE BEBE
BE
BE
BE
BE
Machine
Host
Machine
Host
Machine
Host
Machine
Host
Machine
Host
Machine
Host
Machine
Host
Container
Agent
Container
Agent
Container
Agent
Container
Agent
Container
Agent
Container
Agent
Container
Agent
Kubernetes - Master/Scheduler
オブジェクトの識別
labels:
role: frontend
FE
FE
FE
FE
FE
FE
BE
BE
BE BEBE
BE
BE
BE
BE
Machine
Host
Machine
Host
Machine
Host
Machine
Host
Machine
Host
Machine
Host
Machine
Host
Container
Agent
Container
Agent
Container
Agent
Container
Agent
Container
Agent
Container
Agent
Container
Agent
Kubernetes - Master/Scheduler
オブジェクトの識別
labels:
role: frontend
stage: production
Machine
Host
Machine
Host
Machine
Host
Machine
Host
Machine
Host
Machine
Host
Machine
Host
Container
Agent
Container
Agent
Container
Agent
Container
Agent
Container
Agent
Container
Agent
Container
Agent
Kubernetes - Master/Scheduler
FE
FE
FE
FE
FE
FE
BE
BE
BE BEBE
BE
BE
BE
BE
Pod をデプロイ
Master
Node
Docker kubelet
kube proxy
supervisord
fluentd
Web
Pod
DB
Pod
Registry
python
web
app
redis
db
Pod definitions (yaml)
Deployment
● YAML ファイルに設定されたポッドの数が
常に起動しているかを保証する
→ Pod をシャットダウンや起動する
● Deployment を replicas: 1 で作成すると、1
つの Pod が常に起動していることを保証す
る
● デプロイするコンテナイメージと公開する
ポートを指定する
apiVersion: extensions/v1beta1
kind: Deployment
metadata:
name: web-deployment
labels:
name: web
app: demo
spec:
replicas: 1
template:
metadata:
labels:
app: demo
spec:
containers:
- name: web
image:
asia.gcr.io/<projectid>/web-python:v1
ports:
- containerPort: 5000
name: http
protocol: TCP
Deployment で Pods をスケールする
Master
Docker kubelet
kube proxy
supervisord
fluentd
Web
Pod
1
DB
Pod
Registry
replicas
3
Deployment
definitions (yaml)
Web
Pod
2
Web
Pod
3
replicas
1
編集
Services
アプリケーションのエンドポイント
● TCP / UDP をサポート
● kube-proxy 経由で Iptables を操作
Types
● ClusterIP (クラスタ内のみでアクセスできる VIP)
● NodePort (クラスタ外からアクセス可能なサービス)
● LoadBalancer (LB 経由でアクセス可能なサービス)
● ExternalName (クラスタ外のサービスを指定可能)
apiVersion: v1
kind: Service
metadata:
name: web
labels:
name: web
app: demo
spec:
selector:
name: web
type: LoadBalancer
ports:
- port: 80
targetPort: 5000
protocol: TCP
Service をデプロイ
Client
Node
Web
Pod 1
DB
Pod
Web
Pod 2
Web
Pod 3
LB
Cluster
IP
Port
6379
Port
80
エンドポイントを抽象化
id: frontend-service
port: 8080
labels:
role: frontend
stage: production
Type: LoadBalancer
Frontend Service
FE FE FE FE
Machine
Host
Machine
Host
Machine
Host
Machine
Host
Container
Agent
Container
Agent
Container
Agent
Container
Agent
port: 8080
Load-Balancing
Internet
エンドポイントを抽象化
id: backend-service
port: 9000
labels:
role: backend
stage: production
Type: ClusterIP
Backend Service
BE BE BE BE
Machine
Host
Machine
Host
Machine
Host
Machine
Host
Machine
Host
Machine
Host
Container
Agent
Container
Agent
Container
Agent
Container
Agent
Container
Agent
Container
Agent
FE
port: 9000
Load-Balancing
でも、FEはどうやってBEにアクセスするの?
k8s node
今までのまとめ
Service
port : 80
name : web
Deployment
replicas=1
Pod
name : web
作成
公開
API Server
Pod に
アクセス
管理者
開発者
ユーザー
Service Discovery
Kuberenetes は2つのモードをビルトインでサポート
環境変数
→ Pod が実行すると、kubelet は自動的にクラスタ上で実行している各サービス
の環境変数を追加します
DNS
→ 新しいサービスが作成されると、自動的に Service の DNS レコードが作成され
る
Service Discovery - 環境変数(例)
サービス名: ”redis-master”
ポート: TCP 6379
クラスタ内のIP: 10.0.0.11
REDIS_MASTER_SERVICE_HOST=10.0.0.11
REDIS_MASTER_SERVICE_PORT=6379
REDIS_MASTER_PORT=tcp://10.0.0.11:6379
REDIS_MASTER_PORT_6379_TCP=tcp://10.0.0.11:6379
REDIS_MASTER_PORT_6379_TCP_PROTO=tcp
REDIS_MASTER_PORT_6379_TCP_PORT=6379
REDIS_MASTER_PORT_6379_TCP_ADDR=10.0.0.11
Dev と Prod の差異は環境変数で解決
Dev 環境のクラスタ
サービス名:Web
サービス名:Redis Redis
Web
redis_host = os.environ.get('REDIS_SERVICE_HOST', '')
redis_port = os.environ.get('REDIS_SERVICE_PORT', 6379)
Prod 環境のクラスタ
Redis
Web
redis_host = os.environ.get('REDIS_SERVICE_HOST', '')
redis_port = os.environ.get('REDIS_SERVICE_PORT', 6379)
環境変数
(自動生成)
REDIS_SERVICE_HOST=10.0.0.11
REDIS_SERVICE_PORT=6379
REDIS_PORT=tcp://10.0.0.11:6379
REDIS_PORT_6379_TCP=tcp://10.0.0.11:6379
REDIS_PORT_6379_TCP_PROTO=tcp
REDIS_PORT_6379_TCP_PORT=6379
REDIS_PORT_6379_TCP_ADDR=10.0.0.11
REDIS_SERVICE_HOST=10.0.1.11
REDIS_SERVICE_PORT=6379
REDIS_PORT=tcp://10.0.1.22:6379
REDIS_PORT_6379_TCP=tcp://10.0.1.11:6379
REDIS_PORT_6379_TCP_PROTO=tcp
REDIS_PORT_6379_TCP_PORT=6379
REDIS_PORT_6379_TCP_ADDR=10.0.1.11
コード変更不要
ConfigMap/Secret
コンテナイメージからアプリケーションの設定・パスワードを切り離してデプロイ可能とするリソース
ConfigMap → プレインテキスト
Secret → 暗号化可能(Alpha、k8s 1.7 以降)
2つの使い方:
1. Volume としてマウント
○ ConfigMap/Secret のキーがファイル名で、値がファイルの内容
○ nginx の設定ファイルを読み込む場合、この方法がオススメ
2. 環境変数に設定
○ Pod の定義に環境変数を指定することが可能
ConfigMap のファイルマウント(例)
コンテナイメージ コンテナイメージ
nginx nginx
nginx.conf
ConfigMap
nginx.conf
マウント
⭕ ❌
メリット:ConfigMapのような外部リソースをマウ
ントすると、設定を変更する際にイメージ自体を
変更する必要がなくなる
Secret の環境変数(例)
$ kubectl get secret mysecret -o yaml
apiVersion: v1
data:
username: YWRtaW4=
password: MWYyZDFlMmU2N2Rm
kind: Secret
...
type: Opaque
apiVersion: v1
kind: Pod
metadata:
name: secret-env-pod
spec:
containers:
- name: mycontainer
image: redis
env:
- name: SECRET_USERNAME
valueFrom:
secretKeyRef:
name: mysecret
key: username
- name: SECRET_PASSWORD
valueFrom:
secretKeyRef:
name: mysecret
key: password
restartPolicy: Never
$ echo -n "admin" > ./username.txt
$ echo -n "1f2d1e2e67df" > ./password.txt
$ kubectl create secret generic mysecret
--from-file=./username.txt
--from-file=./password.txt
secret "mysecret" created
Secret の作成
Secret の確認
環境変数経由でSecret の利用
Kubernetes での役割のサマリー
Kubernetes Master の役割は以下となる
→ API Server / Scheduler / Replication Controller
各 Node は Pod を実行する役割
Pod は Kubernetes のデプロイ単位で、1か複数のコンテナを含む
Label は Kubernetes のオブジェクト間を紐付ける役割
Selector は Kubernetes のオブジェクトをフィルターする役割
Deployment は Pod の可用性を担保する役割
Service は Pod を内部、又は外部に公開する役割
Service Discovery はサービスを環境変数やDNSで解決する役割
ConfigMap/Secret は設定やパスワードをイメージから切り離す機能
Minikube - ローカル環境
サポートされているKubernetes の機能
● DNS
● NodePorts
● ConfigMaps and Secrets
● Dashboards
● Container Runtime: Docker, and rkt
● Enabling CNI (Container Network
Interface)
● Ingress
サポートされているVM Drivers
● virtualbox
● vmwarefusion
● kvm (driver installation)
● xhyve (driver installation)
Google Container Engine (GKE)
vs Kubernetes
Kubernetes は Google の Borg からインスパイア
Google は Kubernetes の複数の SIG をリードしたり、積極的に開発にも参加して
います。
→ Kubernetes は Google が論文で出した Borg (社内コンテナオーケストレーショ
ンシステム) からインスパイアーされている
GKE は Kubernetes の新しいバージョンや機能をより早くかつ自動的に対応
Private Container Registry
→ Google Container Registry (GCR)
One click で k8s クラスタを作成
Kubernetes クラスタを手動で作る必要はない
普通だと、全てを手動でインストールする必要がある
● 例えば、ネットワーク:クラスタ間で Pod はどのように通信するのか? flannel や
weave を使う? → GKE ではフルマネージド
● インストールが必要のバイナリー:
○ マスタ:etcd, kube-apiserver, kube-controller-manager, kube-scheduler
○ 各ノード:docker, kubelet, kube-proxy
● API Server を HTTPS で設定するなら、証明書が必要
● Addonのインストール:DNS, Logging, Dashboard などなど
GKE が全部やってくれます!
Master はマネージドサービス
● Master は Google により管理されており、自動的に更新される
→ Node はユーザによってコントロール
→ ノードのマイナー バージョン(x.X.x)がマスターのバージョンより 3 つ以上
古くなると、そのノードは正しく動作しない場合がある
例: マスタが1.3 になると 1.0 が実行しているノードは動作しない場合がある
● クラスタの設定を持つ etcd の自動バックアップ
● Google の SRE が面倒見てくれます!
Node もマネージドモデルにオプトイン可能
● Node の自動アップグレード
→ Node を1by1:unschedulable → drain → 古いバージョンのNodeを削除
→ 新しいバージョンのNodeを作成 → schedulable
● Node の自動修復
→ Node が10分ほど応答しない場合、新しいNodeを作成する
● Node の自動スケール
→ Scheduler が Pod を既存の Node にスケジュールできない場合、新しい
Node を作成し、Pod をその Node にスケジュールする(リソース不足の場合)
● 1 クラスタは 5,000 以上の Node をサポート
GCP とのネイティブ連携
● Cloud IAM
→ クラスタのアクセス制御、クラスタ内は RBAC で
● Stackdriver Monitoring & Logging
→ One click で Monitoring と Logging を設定
● Network Route , FW & Load Balancers (ingress)
→ HTTP LB, TCP/UDP LB, Route & FW ルールを自動的に作成
● Persistent Disk (PDHDD & PDSSD)
→ Stateful アプリケーションも PDHDD & PDSSD でサポート
→ ReplicaSet でも自動 PD のプロビジョニング
● GCP コンソールに Dashboard インテグレーション
GCP の Preemptible VM との連携
● Preempitble VM って何者?
→ 超安いVM!普通の VM の7割以上安い!
● おいしすぎる話なんすけど、デメリットはなに??
→ VM は Max 24 時間起動する。その後、シャットダウンされる。
● GKE と Preemptible VM との相性はなぜ?
→ GKE の自動修復機能で Preemptible VM のシャットダウンを修復する
● 使い分けが重要
Container-Optimized OS (COS)
● 高速なブート
→ スケールアウトが早い
● セキュリティ
→ コンテナに必要なコンポーネントだけを持つOS
→ Verified boot
● Open Source
→ https://cloud.google.com/container-optimized-os/
Thank you!

More Related Content

What's hot

LogbackからLog4j 2への移行によるアプリケーションのスループット改善 ( JJUG CCC 2021 Fall )
LogbackからLog4j 2への移行によるアプリケーションのスループット改善 ( JJUG CCC 2021 Fall ) LogbackからLog4j 2への移行によるアプリケーションのスループット改善 ( JJUG CCC 2021 Fall )
LogbackからLog4j 2への移行によるアプリケーションのスループット改善 ( JJUG CCC 2021 Fall )
Hironobu Isoda
 

What's hot (20)

コンテナ未経験新人が学ぶコンテナ技術入門
コンテナ未経験新人が学ぶコンテナ技術入門コンテナ未経験新人が学ぶコンテナ技術入門
コンテナ未経験新人が学ぶコンテナ技術入門
 
Multibranch pipelineでいろいろ学んだこと
Multibranch pipelineでいろいろ学んだことMultibranch pipelineでいろいろ学んだこと
Multibranch pipelineでいろいろ学んだこと
 
JCBの Payment as a Service 実現にむけたゼロベースの組織変革とテクニカル・イネーブラー(NTTデータ テクノロジーカンファレンス ...
JCBの Payment as a Service 実現にむけたゼロベースの組織変革とテクニカル・イネーブラー(NTTデータ テクノロジーカンファレンス ...JCBの Payment as a Service 実現にむけたゼロベースの組織変革とテクニカル・イネーブラー(NTTデータ テクノロジーカンファレンス ...
JCBの Payment as a Service 実現にむけたゼロベースの組織変革とテクニカル・イネーブラー(NTTデータ テクノロジーカンファレンス ...
 
OSSを利用したプロジェクト管理
OSSを利用したプロジェクト管理OSSを利用したプロジェクト管理
OSSを利用したプロジェクト管理
 
分散トレーシング技術について(Open tracingやjaeger)
分散トレーシング技術について(Open tracingやjaeger)分散トレーシング技術について(Open tracingやjaeger)
分散トレーシング技術について(Open tracingやjaeger)
 
Kubernetesのしくみ やさしく学ぶ 内部構造とアーキテクチャー
Kubernetesのしくみ やさしく学ぶ 内部構造とアーキテクチャーKubernetesのしくみ やさしく学ぶ 内部構造とアーキテクチャー
Kubernetesのしくみ やさしく学ぶ 内部構造とアーキテクチャー
 
Spring Boot ユーザの方のための Quarkus 入門
Spring Boot ユーザの方のための Quarkus 入門Spring Boot ユーザの方のための Quarkus 入門
Spring Boot ユーザの方のための Quarkus 入門
 
【BS7】GitHubをフル活用した開発
【BS7】GitHubをフル活用した開発【BS7】GitHubをフル活用した開発
【BS7】GitHubをフル活用した開発
 
ジョブ管理でcronは限界があったので”Rundeck”を使ってハッピーになりました
ジョブ管理でcronは限界があったので”Rundeck”を使ってハッピーになりましたジョブ管理でcronは限界があったので”Rundeck”を使ってハッピーになりました
ジョブ管理でcronは限界があったので”Rundeck”を使ってハッピーになりました
 
KeycloakでAPI認可に入門する
KeycloakでAPI認可に入門するKeycloakでAPI認可に入門する
KeycloakでAPI認可に入門する
 
新たなgitのブランチモデル「Git Feature Flow」!Git Flow,Git Hub Flow,Git Lab Flowを超えれるか?
新たなgitのブランチモデル「Git Feature Flow」!Git Flow,Git Hub Flow,Git Lab Flowを超えれるか?新たなgitのブランチモデル「Git Feature Flow」!Git Flow,Git Hub Flow,Git Lab Flowを超えれるか?
新たなgitのブランチモデル「Git Feature Flow」!Git Flow,Git Hub Flow,Git Lab Flowを超えれるか?
 
Argo CD Deep Dive
Argo CD Deep DiveArgo CD Deep Dive
Argo CD Deep Dive
 
Docker入門 - 基礎編 いまから始めるDocker管理
Docker入門 - 基礎編 いまから始めるDocker管理Docker入門 - 基礎編 いまから始めるDocker管理
Docker入門 - 基礎編 いまから始めるDocker管理
 
LogbackからLog4j 2への移行によるアプリケーションのスループット改善 ( JJUG CCC 2021 Fall )
LogbackからLog4j 2への移行によるアプリケーションのスループット改善 ( JJUG CCC 2021 Fall ) LogbackからLog4j 2への移行によるアプリケーションのスループット改善 ( JJUG CCC 2021 Fall )
LogbackからLog4j 2への移行によるアプリケーションのスループット改善 ( JJUG CCC 2021 Fall )
 
Dockerからcontainerdへの移行
Dockerからcontainerdへの移行Dockerからcontainerdへの移行
Dockerからcontainerdへの移行
 
その Pod 突然落ちても大丈夫ですか!?(OCHaCafe5 #5 実験!カオスエンジニアリング 発表資料)
その Pod 突然落ちても大丈夫ですか!?(OCHaCafe5 #5 実験!カオスエンジニアリング 発表資料)その Pod 突然落ちても大丈夫ですか!?(OCHaCafe5 #5 実験!カオスエンジニアリング 発表資料)
その Pod 突然落ちても大丈夫ですか!?(OCHaCafe5 #5 実験!カオスエンジニアリング 発表資料)
 
わかる!metadata.managedFields / Kubernetes Meetup Tokyo 48
わかる!metadata.managedFields / Kubernetes Meetup Tokyo 48わかる!metadata.managedFields / Kubernetes Meetup Tokyo 48
わかる!metadata.managedFields / Kubernetes Meetup Tokyo 48
 
Keycloak拡張入門
Keycloak拡張入門Keycloak拡張入門
Keycloak拡張入門
 
Serf / Consul 入門 ~仕事を楽しくしよう~
Serf / Consul 入門 ~仕事を楽しくしよう~Serf / Consul 入門 ~仕事を楽しくしよう~
Serf / Consul 入門 ~仕事を楽しくしよう~
 
第17回Lucene/Solr勉強会 #SolrJP – Apache Lucene Solrによる形態素解析の課題とN-bestの提案
第17回Lucene/Solr勉強会 #SolrJP – Apache Lucene Solrによる形態素解析の課題とN-bestの提案第17回Lucene/Solr勉強会 #SolrJP – Apache Lucene Solrによる形態素解析の課題とN-bestの提案
第17回Lucene/Solr勉強会 #SolrJP – Apache Lucene Solrによる形態素解析の課題とN-bestの提案
 

Viewers also liked

Microsoft azureで実装するwebserviceondocker
Microsoft azureで実装するwebserviceondockerMicrosoft azureで実装するwebserviceondocker
Microsoft azureで実装するwebserviceondocker
Tsukasa Kato
 
Apache HBase 入門 (第1回)
Apache HBase 入門 (第1回)Apache HBase 入門 (第1回)
Apache HBase 入門 (第1回)
tatsuya6502
 

Viewers also liked (20)

福岡クラウドUG-BigQuery
福岡クラウドUG-BigQuery福岡クラウドUG-BigQuery
福岡クラウドUG-BigQuery
 
Secure Substrate: Least Privilege Container Deployment - Diogo Monica and Riy...
Secure Substrate: Least Privilege Container Deployment - Diogo Monica and Riy...Secure Substrate: Least Privilege Container Deployment - Diogo Monica and Riy...
Secure Substrate: Least Privilege Container Deployment - Diogo Monica and Riy...
 
普通のRailsアプリをdockerで本番運用する知見
普通のRailsアプリをdockerで本番運用する知見普通のRailsアプリをdockerで本番運用する知見
普通のRailsアプリをdockerで本番運用する知見
 
Microsoft azureで実装するwebserviceondocker
Microsoft azureで実装するwebserviceondockerMicrosoft azureで実装するwebserviceondocker
Microsoft azureで実装するwebserviceondocker
 
Moby Project
Moby ProjectMoby Project
Moby Project
 
はじめてのAzure Azure的ピタゴラスイッチのススメ- PaaS・サーバーレス 初級編 -
はじめてのAzure Azure的ピタゴラスイッチのススメ- PaaS・サーバーレス 初級編 -はじめてのAzure Azure的ピタゴラスイッチのススメ- PaaS・サーバーレス 初級編 -
はじめてのAzure Azure的ピタゴラスイッチのススメ- PaaS・サーバーレス 初級編 -
 
HBaseを用いたグラフDB「Hornet」
HBaseを用いたグラフDB「Hornet」HBaseを用いたグラフDB「Hornet」
HBaseを用いたグラフDB「Hornet」
 
Kubernetes etc.. & rancher 2.0 technical preview
Kubernetes etc.. & rancher 2.0 technical previewKubernetes etc.. & rancher 2.0 technical preview
Kubernetes etc.. & rancher 2.0 technical preview
 
Githubを使って簡単に helm repoを公開してみよう
Githubを使って簡単に helm repoを公開してみようGithubを使って簡単に helm repoを公開してみよう
Githubを使って簡単に helm repoを公開してみよう
 
hbaseconasia2017: Building online HBase cluster of Zhihu based on Kubernetes
hbaseconasia2017: Building online HBase cluster of Zhihu based on Kuberneteshbaseconasia2017: Building online HBase cluster of Zhihu based on Kubernetes
hbaseconasia2017: Building online HBase cluster of Zhihu based on Kubernetes
 
インフラエンジニアのこれまでとこれから
インフラエンジニアのこれまでとこれからインフラエンジニアのこれまでとこれから
インフラエンジニアのこれまでとこれから
 
超実践 Cloud Spanner 設計講座
超実践 Cloud Spanner 設計講座超実践 Cloud Spanner 設計講座
超実践 Cloud Spanner 設計講座
 
元OracleMasterPlatinumがCloudSpanner触ってみた
元OracleMasterPlatinumがCloudSpanner触ってみた元OracleMasterPlatinumがCloudSpanner触ってみた
元OracleMasterPlatinumがCloudSpanner触ってみた
 
Apache HBase 入門 (第1回)
Apache HBase 入門 (第1回)Apache HBase 入門 (第1回)
Apache HBase 入門 (第1回)
 
Kubernetes をいじって Hardware LoadBalancer で "type LoadBalancer" を実現してみた @Kuberne...
Kubernetes をいじって Hardware LoadBalancer で "type LoadBalancer" を実現してみた @Kuberne...Kubernetes をいじって Hardware LoadBalancer で "type LoadBalancer" を実現してみた @Kuberne...
Kubernetes をいじって Hardware LoadBalancer で "type LoadBalancer" を実現してみた @Kuberne...
 
Oracle対応アプリケーションのDockerize事始め
Oracle対応アプリケーションのDockerize事始めOracle対応アプリケーションのDockerize事始め
Oracle対応アプリケーションのDockerize事始め
 
RDBのDBAから見た GCP Managed Database
RDBのDBAから見た GCP Managed Database RDBのDBAから見た GCP Managed Database
RDBのDBAから見た GCP Managed Database
 
DockerとKubernetesが作る未来
DockerとKubernetesが作る未来DockerとKubernetesが作る未来
DockerとKubernetesが作る未来
 
Being a Moby maintainer
Being a Moby maintainerBeing a Moby maintainer
Being a Moby maintainer
 
[Japan Tech summit 2017] DEP 005
[Japan Tech summit 2017] DEP 005[Japan Tech summit 2017] DEP 005
[Japan Tech summit 2017] DEP 005
 

Similar to Google Container Engine (GKE) & Kubernetes のアーキテクチャ解説

[External] 2021.12.15 コンテナ移行の前に知っておきたいこと @ gcpug 湘南
[External] 2021.12.15 コンテナ移行の前に知っておきたいこと  @ gcpug 湘南[External] 2021.12.15 コンテナ移行の前に知っておきたいこと  @ gcpug 湘南
[External] 2021.12.15 コンテナ移行の前に知っておきたいこと @ gcpug 湘南
Google Cloud Platform - Japan
 
試して学べるクラウド技術! OpenShift
試して学べるクラウド技術! OpenShift試して学べるクラウド技術! OpenShift
試して学べるクラウド技術! OpenShift
Etsuji Nakai
 
cf-containers-broker を使ってローカル環境もサービスの恩恵をうける
cf-containers-broker を使ってローカル環境もサービスの恩恵をうけるcf-containers-broker を使ってローカル環境もサービスの恩恵をうける
cf-containers-broker を使ってローカル環境もサービスの恩恵をうける
Takeshi Morikawa
 

Similar to Google Container Engine (GKE) & Kubernetes のアーキテクチャ解説 (20)

CI/CD Pipeline を考える 〜KubeCon 2017 + CyberAgent の最大公倍数〜
CI/CD Pipeline を考える 〜KubeCon 2017 + CyberAgent の最大公倍数〜CI/CD Pipeline を考える 〜KubeCon 2017 + CyberAgent の最大公倍数〜
CI/CD Pipeline を考える 〜KubeCon 2017 + CyberAgent の最大公倍数〜
 
[External] 2021.12.15 コンテナ移行の前に知っておきたいこと @ gcpug 湘南
[External] 2021.12.15 コンテナ移行の前に知っておきたいこと  @ gcpug 湘南[External] 2021.12.15 コンテナ移行の前に知っておきたいこと  @ gcpug 湘南
[External] 2021.12.15 コンテナ移行の前に知っておきたいこと @ gcpug 湘南
 
2019年度 CaaS ワークショップ @ NTTコム
2019年度 CaaS ワークショップ @ NTTコム2019年度 CaaS ワークショップ @ NTTコム
2019年度 CaaS ワークショップ @ NTTコム
 
AKS (k8s) Hands on Lab Contents
AKS (k8s) Hands on Lab ContentsAKS (k8s) Hands on Lab Contents
AKS (k8s) Hands on Lab Contents
 
AKS と ACI を組み合わせて使ってみた
AKS と ACI を組み合わせて使ってみたAKS と ACI を組み合わせて使ってみた
AKS と ACI を組み合わせて使ってみた
 
Kube con + cloudnativecon 2017 社内報告会(外部公開用)
Kube con + cloudnativecon 2017 社内報告会(外部公開用)Kube con + cloudnativecon 2017 社内報告会(外部公開用)
Kube con + cloudnativecon 2017 社内報告会(外部公開用)
 
はじめてのAzure Web App for Containers! -コンテナの基礎から DevOps 環境の構築まで-
はじめてのAzure Web App for Containers! -コンテナの基礎から DevOps 環境の構築まで-はじめてのAzure Web App for Containers! -コンテナの基礎から DevOps 環境の構築まで-
はじめてのAzure Web App for Containers! -コンテナの基礎から DevOps 環境の構築まで-
 
Japan Container Day 2018
Japan Container Day 2018Japan Container Day 2018
Japan Container Day 2018
 
はてなにおける継続的デプロイメントの現状と Docker の導入
はてなにおける継続的デプロイメントの現状と Docker の導入はてなにおける継続的デプロイメントの現状と Docker の導入
はてなにおける継続的デプロイメントの現状と Docker の導入
 
分散環境におけるDocker とオーケストレーション
分散環境におけるDocker とオーケストレーション分散環境におけるDocker とオーケストレーション
分散環境におけるDocker とオーケストレーション
 
オトナのDocker入門
オトナのDocker入門オトナのDocker入門
オトナのDocker入門
 
試して学べるクラウド技術! OpenShift
試して学べるクラウド技術! OpenShift試して学べるクラウド技術! OpenShift
試して学べるクラウド技術! OpenShift
 
マイクロサービス時代の生存戦略 with HashiCorp
マイクロサービス時代の生存戦略 with HashiCorpマイクロサービス時代の生存戦略 with HashiCorp
マイクロサービス時代の生存戦略 with HashiCorp
 
Docker入門-基礎編 いまから始めるDocker管理【2nd Edition】
Docker入門-基礎編 いまから始めるDocker管理【2nd Edition】Docker入門-基礎編 いまから始めるDocker管理【2nd Edition】
Docker入門-基礎編 いまから始めるDocker管理【2nd Edition】
 
[Cloud OnAir] 【Google Kubernetes Engine 演習】解説を聞きながら GKE を体験しよう 2020年10月29日 放送
[Cloud OnAir] 【Google Kubernetes Engine 演習】解説を聞きながら GKE を体験しよう 2020年10月29日 放送[Cloud OnAir] 【Google Kubernetes Engine 演習】解説を聞きながら GKE を体験しよう 2020年10月29日 放送
[Cloud OnAir] 【Google Kubernetes Engine 演習】解説を聞きながら GKE を体験しよう 2020年10月29日 放送
 
Infra: Kubernetes and GKE, Network
Infra: Kubernetes and GKE, NetworkInfra: Kubernetes and GKE, Network
Infra: Kubernetes and GKE, Network
 
cf-containers-broker を使ってローカル環境もサービスの恩恵をうける
cf-containers-broker を使ってローカル環境もサービスの恩恵をうけるcf-containers-broker を使ってローカル環境もサービスの恩恵をうける
cf-containers-broker を使ってローカル環境もサービスの恩恵をうける
 
Rancher 2.0 Technical Preview & Bluemix Kubernetes Cluster Import
Rancher 2.0 Technical Preview & Bluemix Kubernetes Cluster ImportRancher 2.0 Technical Preview & Bluemix Kubernetes Cluster Import
Rancher 2.0 Technical Preview & Bluemix Kubernetes Cluster Import
 
kubetnetes etc.. & Rancher2.0 Technical Preview -import BLUMIX K8S Clusters-
kubetnetes etc.. & Rancher2.0 Technical Preview -import BLUMIX K8S Clusters-kubetnetes etc.. & Rancher2.0 Technical Preview -import BLUMIX K8S Clusters-
kubetnetes etc.. & Rancher2.0 Technical Preview -import BLUMIX K8S Clusters-
 
20170311 Developing & Deploying .NET Core on Linux
20170311 Developing & Deploying .NET Core on Linux20170311 Developing & Deploying .NET Core on Linux
20170311 Developing & Deploying .NET Core on Linux
 

Recently uploaded

2024年5月25日Serverless Meetup大阪 アプリケーションをどこで動かすべきなのか.pptx
2024年5月25日Serverless Meetup大阪 アプリケーションをどこで動かすべきなのか.pptx2024年5月25日Serverless Meetup大阪 アプリケーションをどこで動かすべきなのか.pptx
2024年5月25日Serverless Meetup大阪 アプリケーションをどこで動かすべきなのか.pptx
ssuserbefd24
 

Recently uploaded (11)

論文紹介: Offline Q-Learning on diverse Multi-Task data both scales and generalizes
論文紹介: Offline Q-Learning on diverse Multi-Task data both scales and generalizes論文紹介: Offline Q-Learning on diverse Multi-Task data both scales and generalizes
論文紹介: Offline Q-Learning on diverse Multi-Task data both scales and generalizes
 
論文紹介:ViTPose: Simple Vision Transformer Baselines for Human Pose Estimation
論文紹介:ViTPose: Simple Vision Transformer Baselines for Human Pose Estimation論文紹介:ViTPose: Simple Vision Transformer Baselines for Human Pose Estimation
論文紹介:ViTPose: Simple Vision Transformer Baselines for Human Pose Estimation
 
5/22 第23回 Customer系エンジニア座談会のスライド 公開用 西口瑛一
5/22 第23回 Customer系エンジニア座談会のスライド 公開用 西口瑛一5/22 第23回 Customer系エンジニア座談会のスライド 公開用 西口瑛一
5/22 第23回 Customer系エンジニア座談会のスライド 公開用 西口瑛一
 
論文紹介: Exploiting semantic segmentation to boost reinforcement learning in vid...
論文紹介: Exploiting semantic segmentation to boost reinforcement learning in vid...論文紹介: Exploiting semantic segmentation to boost reinforcement learning in vid...
論文紹介: Exploiting semantic segmentation to boost reinforcement learning in vid...
 
2024年度_サイバーエージェント_新卒研修「データベースの歴史」.pptx
2024年度_サイバーエージェント_新卒研修「データベースの歴史」.pptx2024年度_サイバーエージェント_新卒研修「データベースの歴史」.pptx
2024年度_サイバーエージェント_新卒研修「データベースの歴史」.pptx
 
Amazon Cognitoで実装するパスキー (Security-JAWS【第33回】 勉強会)
Amazon Cognitoで実装するパスキー (Security-JAWS【第33回】 勉強会)Amazon Cognitoで実装するパスキー (Security-JAWS【第33回】 勉強会)
Amazon Cognitoで実装するパスキー (Security-JAWS【第33回】 勉強会)
 
Intranet Development v1.0 (TSG LIVE! 12 LT )
Intranet Development v1.0 (TSG LIVE! 12 LT )Intranet Development v1.0 (TSG LIVE! 12 LT )
Intranet Development v1.0 (TSG LIVE! 12 LT )
 
20240523_IoTLT_vol111_kitazaki_v1___.pdf
20240523_IoTLT_vol111_kitazaki_v1___.pdf20240523_IoTLT_vol111_kitazaki_v1___.pdf
20240523_IoTLT_vol111_kitazaki_v1___.pdf
 
2024年5月25日Serverless Meetup大阪 アプリケーションをどこで動かすべきなのか.pptx
2024年5月25日Serverless Meetup大阪 アプリケーションをどこで動かすべきなのか.pptx2024年5月25日Serverless Meetup大阪 アプリケーションをどこで動かすべきなのか.pptx
2024年5月25日Serverless Meetup大阪 アプリケーションをどこで動かすべきなのか.pptx
 
論文紹介:Deep Occlusion-Aware Instance Segmentation With Overlapping BiLayers
論文紹介:Deep Occlusion-Aware Instance Segmentation With Overlapping BiLayers論文紹介:Deep Occlusion-Aware Instance Segmentation With Overlapping BiLayers
論文紹介:Deep Occlusion-Aware Instance Segmentation With Overlapping BiLayers
 
ロボットマニピュレーションの作業・動作計画 / rosjp_planning_for_robotic_manipulation_20240521
ロボットマニピュレーションの作業・動作計画 / rosjp_planning_for_robotic_manipulation_20240521ロボットマニピュレーションの作業・動作計画 / rosjp_planning_for_robotic_manipulation_20240521
ロボットマニピュレーションの作業・動作計画 / rosjp_planning_for_robotic_manipulation_20240521
 

Google Container Engine (GKE) & Kubernetes のアーキテクチャ解説