我参加了第31期的 Kubernetes Meetup Tokyo

前天参加了Kubernetes Meetup Tokyo,记录下了一些有趣的想法。略过了所有的实践篇!

内容スピーカーいま、Kubernetes 好きのあなたにこそ伝えたい Amazon ECS 〜 違いに学ぶ Kubernetes の考え方・使い方 〜 (30min)Tori Hara(@toricls), AWS入門!ClusterAPI 〜k8sクラスターもk8s APIで管理したい〜 (30min)髙石 諒 (@r_takaishi), GMOペパボ株式会社Helmfile: Superchage your deployment pipeline (30min)Yusuke Kuoka(@mumoshu), Z Lab Corporation

现在是时候向喜欢Kubernetes的您介绍Amazon ECS了 〜 学习Kubernetes思维和用法的差异 〜

介绍了ECS和Kubernetes之间的区别。不是哪个更好,而是说这里很有意思嘛~

创建设置文件的差异

创建设置文件以在Load Balancer上将流量传输到应用程序

    • kubernetesの場合

 

    • deployment、service、Ingressを作成する

 

    • Amazon ECSの場合

 

    Task Definition、Service作成する

– 补充完整

由于ECS与Kubernetes相比,配置文件往往较短且文件数量较少。
因为ECS需要与AWS中的其他服务结合使用,所以需要管理的范围比Kubernetes小。

部署流程的差异

    • kubernetesの場合

Application Repository(Dockerfile)にcommit
CI走る
Docker Pushし、Imageを登録 & Manifest RepositoryへPull Request投げる
CD走る(deploy)

    • Amazon ECSの場合

 

    •    1. Applicationのリポジトリ(dockerfile、task定義)にcommit

 

    •    2. CI走る

 

    •    3. Docker Pushし、Image登録 & ECS API叩いて、Diff登録 & Manifest RepositoryにPull Request

 

       4. CD走る(deploy)

補充

在ECS中,可以管理的范围很有限。在ECS的yaml文件中指定了集群名称。
ECS通过管理云上注册的任务定义、名称和版本来管理集群,而Kubernetes通过部署文件来管理集群。

日志收集的差异

    • kubernetesの場合

ログの取集はノードやクラスタレベルでの意思決定、オペレーション
DeamonSetによって、ログ収集エージェントをノード郡に展開
Docker Logドライバーをサポートしないという方針。
Docker独自の仕様だから良くないという考え。

    • Amazon ECSの場合

ログ収集はアプリケーションレベルでの意思決定、オペレーションが想定されている
docker logドライバーをタスク定義から設定する。
アプリごとにログの送付先が異なるケースが想定されている。

在Kubernetes中,Amazon ESC所没有的东西。

ECSにはJob

Step Functionで実行できる!

cronJobs

Event Bridge + Step Function + ECSで同じことができる

Admission Controller

ECSでは同じようなことができるサービスはまだない。悲しみ。

在亚马逊的ESC中存在的,而在Kubernetes中不存在的。

    • ECSタスクにはコンテナディペンデンシー

コンテナの起動・終了の順番を指定できる。

initContainer等があるが、コンテナ群の起動順序を管理まではちょっと…という感じらしい。

Tori对Kubernetes和ECS的想法

kubernetes

DevとOpsや、Devとインフラを明確に線引きしようとしている…?

ECS

開発者が広い範囲の管理を行えるようになっていると思う。

入门!ClusterAPI 〜想用k8s API管理k8s集群〜

Cluster API到底是什么东西呢!这是一个讨论的话题。

“クラスタAPI是什么” (What is the cluster API?)

    • Kubernetesクラスタを管理するためのAPI

 

    • KubernetesのAPIでKubernetesを管理できる

 

    • パブリッククラウド、プライベートクラウド、ペアメタルなどの様々なインフラで利用可能

 

    • CRDとCustomController、CLIツールで構成されている。

CRD:KubernetesのAPIを拡張し、独自リソースを定義するための機能
CustomController:Kubernetes上のリソースの作成、更新、削除に反応して、何かしらの処理を行うプログラム。CRDと一緒に作ることができる。

为什么需要聚类API?

为了搭建和运维Kubernetes,有许多需要考虑的事情。

    • コントロールプレーンのHA、台数増減

 

    • Nodeをどうクラスターに参加させるか、台数増減

 

    • Kubernetesのバージョンアップ

 

    障害時のオペレーション、オートヒール等

由于Kubernetes是一种分布式系统,因此构建和运维变得困难。
→ Kubernetes适合用于分布式系统的管理。
→ 使用Kubernetes来管理Kubernetes吧!

通过使用Kubernetes进行管理,可以将构建、更新和自动恢复等Kubernetes工作负载载入其中。

→ Cluster API的目标是这个。

总结

    • ClusterAPIはKubernetesの機能を使ってKubernetesクラスターを管理するための仕組み。

 

    • インフラレイヤーに注力し、複数の環境をサポートする。

 

    • 複数のカスタムリソースとカスタムコントローラーが強調して動作していて、CRD/カスタムコントローラーの設計・実装の参考になる。

 

    現在も活発に開発がされており、機能追加が期待される。

Helmfile:加速您的部署流程

我要介绍一个能够简化Kubernetes部署管理的工具!

helmfileとは

    • Helmベースの宣言的デプロイツール。

 

    • HelmはKubernetesのパッケージマネージャー。

 

    前のデプロイとの差分をみれるコマンドがあったりして便利。

helmfile示例集
https://github.com/cloudposse/helmfile

概括

Kubernetesのデプロイ面倒でいろいろコストが大きくなりがち。
Helmfileを使うと面倒を減らせるのでいいぞ!(多機能だし)

听说可能有一天会加入Heml的官方项目???

广告
将在 10 秒后关闭
bannerAds