6. Internal and Business Partner Use OnlyIBM Cloud
Overview of Kubernetes
Bootノード
Ansibleベース
インストーラー
& 運用管理
Masterノード
管理コンソール(router)
Workerノード Workerノード Proxyノード
永続ストレージ
ユーザー・アプリケーション ユーザー・アプリケーション
Calicoノード Filebeat Calicoノード Filebeat
KubeletK8 Proxy KubeletK8 Proxy
Calicoノード Filebeat
KubeletK8 Proxy
UCarp
Ingressコントローラー
Kubernetesコア
etcd KubeletK8 Proxy K8 Scheduler K8 Control Manger K8 API Server
Calicoノード
認証App Centerログ・監視 イメージ管理VIP管理
認証マネジャー
Keystone
Maria DB
Elastic Search
Heapster
Logstash
Filebeat
イメージMgr
Dockerレジストリ
Unifiedルーター
Helmレポジトリ
Tiller
UCarp
DNS
Kube-DNS
Calico ポリシー
コントローラー
Default Backend
Rescheduler
LDAP
7. Internal and Business Partner Use OnlyIBM Cloud
Basic of Kubernetes
Kubernetes = Kubelet = Cluster = 複数のものを1つに⾒せる
= Master + Worker + Registry
Master
=
API +
Scheduler +
Controller
Kubernetes
Worker Node 1
Container
Registry
(Docker Image)
Worker Node 2
Worker Node 3
Worker Node N
オンプレミスだと、この信頼性設計が大
変。IBMやGoogleのマネージドサービ
スを活用すると、ここが隠ぺいされる。
クラウドと同様にAPIで制御。
8. Internal and Business Partner Use OnlyIBM Cloud
Worker Node on Kubernetes
Worker Node on Kubernetes
Service
Cluster IP
Services
Pod A
Cluster IP
Container
Container
Kublet
Pod B
Cluster IP
Container
Container
Kube Proxy
Pod C
Cluster IP
Container
Container
Pod D
Cluster IP
Container
Container
IP or FQDN
アクセス
IP or FQDN
アクセス
ポート
アクセス
Replica Set Replica Set
コンテナ
はポート
フォワー
ディング
Stateful Setを
使いか否かもポイント
9. Internal and Business Partner Use OnlyIBM Cloud
Labels on YAML code for Kubernetes
apiVersion: apps/v1beta2 # for versions before 1.8.0 use apps/v1beta1
kind: Deployment
metadata:
name: nginx-deployment
spec:
replicas: 3
selector:
matchLabels:
app: nginx
template:
metadata:
labels:
app: nginx
spec:
containers:
- name: nginx
image: nginx:1.7.9
ports:
- containerPort: 80
役割を付与するLabelが重要
https://kubernetes.io/docs/concepts/overview/working-with-objects/kubernetes-objects/ より引用
nginx nginx nginx
Label : nginx
mysql mysql mysql
Label : mysql
14. Internal and Business Partner Use OnlyIBM Cloud
Istio
IBM, Google and Lyft give microservices
a ride on the Istio Service Mesh
https://developer.ibm.com/dwblog/2017/istio/
マイクロサービス
アプリケーション層
マイクロサービス
フロント層
マイクロサービス
DB/Integration層
冗⻑性設定の
コントロール
プレーンへの追加
Istio の アーキテクチャー
非機能要件をコードに実装
+
15. Internal and Business Partner Use OnlyIBM Cloud
Blue-Green Deployment for Cloud native
インストールはこれだけ
kubectl apply -f install/kubernetes/istio.yaml
ルーター(LB)
Blue (Old Version) Green (New Version)
段階的
に切替
クラウドネイティブといえばBlue-Green Deployment
発展的にはHTTPベースの⾼度な制御が必要だけど、
CloudFoundryではなく、
Kubernetes 環境の場合での良い⽅法は︖
Stateful Set の活用もわかるけど。。
Istio
21. Internal and Business Partner Use OnlyIBM Cloud
Grafeas
IBM and Google combine forces to open source Grafeas project, helping
developers solve security challenges when building with containers
https://developer.ibm.com/dwblog/2017/grafeas/
22. Internal and Business Partner Use OnlyIBM Cloud
Category Definition
/projects/<project_id>/notes/<note_id>
定期的なアクセスによって脆弱性を確認
例)Linuxパッケージに対する脆弱性診断による結果であるCVE
/projects/<project_id>/occurrences/<occurrence_id>
クラウドのリソースやプロジェクト(テナント等)をインスタンス化する際の脆弱性
例)heartbleed OpenSSL
25. Internal and Business Partner Use OnlyIBM Cloud
IBM Cloud Private = Kubernetes Managed anywhere
26. Internal and Business Partner Use OnlyIBM Cloud
Amazon ECS using Fragates
・このKubernetes からIstio、Grafeas への流れは、
AWSがELBからALBへの進化、VPCエンドポイントで内部でフィルタリング可能
になってきた流れに似ている気がします。
(※)個⼈的な意⾒であり、社の公式⾒解ではありません。