Ce diaporama a bien été signalé.
Nous utilisons votre profil LinkedIn et vos données d’activité pour vous proposer des publicités personnalisées et pertinentes. Vous pouvez changer vos préférences de publicités à tout moment.

Alibaba Cloud Serverless Kubernetes 徹底解説

732 vues

Publié le

Alibaba Cloud Serverless Kubernetesをさっそくさわってみたので、徹底解説します。
AliEaters Tokyo#11の資料でもあります。

Publié dans : Technologie
  • Soyez le premier à commenter

Alibaba Cloud Serverless Kubernetes 徹底解説

  1. 1. Serverless Kubernetes 徹底解説 Serverless kubernetesとElastic Container Instanceの関係を明かす 1 @mosuke5 AliEaters Tokyo #11 (2019/5/15)
  2. 2. 2 Who are you? 名前: もーすけ (@mosuke5) 仕事: 「元」Alibaba Cloud日本リージョンの中の人。 その前はWebエンジニア。いまは修行中の身。 好きな分野は、Webアプリ開発とかサーバ運用の自動化とか 最近: 転職しました。転職後、初のイベント登壇。 色んな意味で「違う」ということを実感し日々おもしろい。 ブログ:  https://blog.mosuke.tech
  3. 3. 2019年3月 卒業。正式なMVPへ 3 Alibaba Cloudの中の人を 卒業。Alibabaと僕の物語 https://blog.mosuke.tech/entry/ 2019/03/29/thank-you-alibaba/
  4. 4. 宣言どおり 4
  5. 5. 気になっていた、あれが、 ついに触れるようになっている! 5
  6. 6. Serverless Kubernetes Cluster ※過去にβ申請で無視されてます!!笑 6
  7. 7. コンテナ関連のプロダクトラインナップ 7 ・通常モード ・Managedモード ・Serverlessモード 独自のオープンソースContainer Engine Elastic Container Instance Container Service for k8s Container Service for swarm Container Registry
  8. 8. いったいどんなサービス? 他とのポジションニングは? どう使い分けたらいいの? 8
  9. 9. serverless kubernetesとは 自分でクラスターやサーバーを管理せずにすばやくKubernetes クラスターを作成して利用することのできるサービス。アプリケー ションが利用した実際のCPUやメモリ量による重量課金型の Kubernetesサービス。 そして、このサービスはKubernetes APIと互換性があるとのこ と。 9
  10. 10. マネージドの範囲 1010 Master Node Worker Node TCP 22 TCP 6443 TCP 8443 TCP 6443 NAT GW VPC Serverlessモード 管理はPodsだけ Managedモード Master NodesがManaged
  11. 11. サポートする機能(ピックアップ) ● APIバージョン: kubernetes 1.9(どのくらいで追随するか楽しみである) ● Workload ○ サポートする : Deployment, StatefulSet, Job/CronJob, Bare Pod ○ サポートしない: DaemonSet ● LoadBalancer (service, ingress) ○ Service、IngressでLoadBalance(SLBが利用可能) ○ NodePortは利用不可 ● Storage ○ PV、PVCは利用不可 ○ 永続ボリュームはNASやOSS、RDSを利用する ○ ConfigMap, Secretは利用可能 11 ※詳細は公式ドキュメントを参照
  12. 12. 基本的な仕組み 12 VPC Pod (ECI Instance) Pod (ECI Instance) Pod (ECI Instance) ENI ENI ENI Service: LoadBalancer 基本的な構図はAWS Fargateと似てい る。それをKubernetesとして実行、管理で きるというのが特徴的なポイント。 ECIの裏側の仕組みはわかりませんでし た。firecrackerのようなものなのかなん なのか...? 任意のVPCの中に 配備できるのは何 かと便利。
  13. 13. 最近のクラウド界隈のコンテナサービス動向 13 非マネージド マネージド ノードレス Alibaba Cloud Container Service for Kubernetes Container Service for Kubernetes(Managed mode)/Swarm Elastic Container Service(ECI) AWS - Amazon ECS, Amazon EKS Fargate Azure Azure Container Service(終了予 定) Azure Kubernetes Service(AKS) Azure Container Instance(ACI) GCP - Google Kubernetes Engine(GKE) -
  14. 14. サンプルコード Nginxを2台配置するdeploymentと、その前段のロードバランサ を配置するサンプルコードを作りました。 <サンプルコードはこちらから> https://gist.github.com/mosuke5/75738227c81f09994a66f607a5545bf6 14 $ kubectl apply -f serverless_k8s_sample.yaml deployment.apps/nginx-deployment changed service/nginx-lb changed
  15. 15. PodsはECIとして起動していた 15 $ kubectl get pods NAME READY STATUS RESTARTS AGE nginx-deployment-867cfccff6-hqslk 2/2 Running 0 4m nginx-deployment-867cfccff6-pf24l 2/2 Running 0 4m ECIの画面にいくとPods(コン テナ)が作成されている。
  16. 16. SLB配下にはENIとしてECIが紐づけられていた 16 SLBのリスナーとそのターゲットを確認す るとENIが紐づけられていることがわか る。 ENIをバックエンドにするにはSLBは guaranteed-performanceタイプでないと いけない。
  17. 17. Podの配置ノードを見てみる $ kubectl get pods -o wide NAME READY STATUS RESTARTS AGE IP NODE NOMINATED NODE nginx-123 2/2 Running 0 2m 192.168.0.5 viking-c61280828966245599093cd57cbc145ea <none> nginx-456 2/2 Running 0 2m 192.168.0.7 viking-c61280828966245599093cd57cbc145ea <none> nginx-789 2/2 Running 0 2m 192.168.0.6 viking-c61280828966245599093cd57cbc145ea <none> 17 Podsが同じノードで動いているように見える。 この”viking”というのを調べると火葬ノードで、virtual-kubeletで 実現しているということがわかった。 こちらで発見しました。 「From Containers to Cloud Native - Ultimate Elasticity」
  18. 18. virtual-kubelet Virtual KubeletはオープンソースのKubernetes kubelet実装の1つで、 他のAPIと接続することを目的にしたKubeletである。 これは、ノードがACI, AWS Fargate, Hyper.sh, IoT Edgeなどのほかのサービスに支え られることを実現します。VKの主なシナリオはKubernetes APIをACI, Fargate, and Hyper.shなどのサーバレスコンテナプラットフォームへの拡張を可能にすることです。 CNCFプロダクトの1つ。 Alibaba Cloudも対応するプロバイダーとして貢献している。 https://github.com/virtual-kubelet/virtual-kubelet 18
  19. 19. Kubernetes Cluster kubelet Worker Node kubelet Worker Node virtual-kub elet が作っ た仮想ノー ド マネージド Kubernetes AKSAlibaba Kubertenes 1. virtual-kubeletの仮想 ノードに対してPodの配置 を定義する。 2. virtual-kubeletはkubenetesの 拡張としてnodelessプラットフォー ムへPodの配置を行う Alibaba ECI Azure ACI [Pod] virtual-kubelet 少し具体的に わかりやすくしてみた。
  20. 20. virtual-kubelet Alibaba Cloudでやってみる 20 Kubernetes Cluster kubelet Worker Node kubelet Worker Node virtual-kub elet が作っ た仮想ノー ド Alibaba Cloud Container Service for Kubertenes (日本リージョン) 1. virtual-kubeletの仮想 ノードに対してPodの配置 を定義する。 2. virtual-kubeletはkubenetesの 拡張としてnodelessプラットフォー ムへPodの配置を行う [Pod] virtual-kubelet Alibaba Cloud Elastic Container Instance (シリコンバレーリージョン )
  21. 21. 詳しくはこちら(ブログとスライド) 21 Virtual Kubeletとは何か。Alibaba Cloud上で実際に動かして検証する https://blog.mosuke.tech/entry/2019/0 2/03/virtual-kubelet/
  22. 22. ロギング DaemonSetの配備はできないので、サイドカー方式でLogtailを 起動させてLogServiceとの連携が可能。 22 VPC Pod (ECI Instance) ENI Nginx コンテナ Logtail コンテナ LogService Object Storage MaxCompute <サンプルコードはこちらから > https://gist.github.com/mosuke5/75738 227c81f09994a66f607a5545bf6
  23. 23. Ingress 23 VPC Pod (ECI Instance) Pod (ECI Instance) Pod (ECI Instance) ENI ENI ENI Ingress L7 SLB L7のSLBがIngress機能をはたす。 L7 SLBにはURL-based forwardingの機 能お備えておりIngressの役割を担うこと が可能。 その他、SLBはSSLの終端も可能。 HTTP2への対応もばっちり foo.bar.com hoge.fuga.com <サンプルコードはこちらから > https://gist.github.com/mosuke5/75738 227c81f09994a66f607a5545bf6
  24. 24. 利用料金 値段はちなみに安くない。 serverless kubernetes自体はいま(2019年5月)は無料。 なので事実上ECIの値段が利用価格となる。 <価格モデル> (vCPU利用料 + メモリ利用料) * 起動した秒数 24
  25. 25. 1vCPU, 4GiBを1ヶ月起動した場合の価格 実際価格 ((0.000011 USD * vCPU) + (0.00000275 USD * GiB)) * sec = ((0.000011 USD * 1) + (0.00000275 USD * 4)) * 60 * 60 * 720 = 57.024 USD = 6272.64円 (1ドル=110円レート換算) ※SLBおよびトラフィック代は別途かかる 25
  26. 26. まとめ ● serverless kubernetesはECIを使ったサーバの管理不要を 実現したkubernetesクラスタ。その分制限事項も多い。 ● kubernetesという現代のデファクトスタンダードな技術を利用 してサーバレスコンピューティングを利用できる点は悪くなさ そう。 ● 裏側はvirtual-kubeletを活用している。 serverlessではない通常のクラスタにvirtual-kubeletを入れ てECIと併用活用も可能ということ。 26

×