我参加了第31期的 Kubernetes Meetup Tokyo
前天参加了Kubernetes Meetup Tokyo,记录下了一些有趣的想法。略过了所有的实践篇!
现在是时候向喜欢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的官方项目???