Okteto Cloudの検証メモ
開発環境向けにクラウド上にKubernetes Clusterを提供するOkteto Cloud
の検証を行った.
モチベ
- 研究室内の勉強会用の Kubernetes の開発環境がほしい
- 自宅のステージング環境がほしい
- 研究の関係でマルチテナンシーの Kubernetes as a Service のセキュリティが気になった.
Pricing, Plan
- GitHubアカウントがあれば無料で以下のリソースが使用可能(Developper Plan)
- namespaceを5個まで作成可能
- 1namespaceあたり10個までpodを作成可能
- 1namespaceあたり5GBのStorageが利用可能
- Developper Pro Planもある
RBAC(Role-Based Access Control) やPSP(Pod Security Policy) の検証
- Pod Security PolicyやRBACのルールが公開されている https://okteto.com/docs/cloud/multitenancy/#pod-security-policies
- kube-systemなどクラスタ自体を構成するためのnamespaceへのアクセス権は与えられていない
hostNetwork
,hostIPC
,hostPID
,privilege
などホストの権限を得るオプションは使用不可- CRD(Custom Resource Definition)は作成不可
その他機能面
- Kubernetes 1.20.x系が固定で使用可能
- GitHub連携でリソースを適用することができる
okteto-pipeline.yml
をリポジトリに入れてpushすることで自動デプロイ- pipeline内で使用可能なツール https://okteto.com/docs/cloud/okteto-pipeline/index.html#built-in-tools
- 外部公開も可能, マネージドSSL証明書の発行も可能
- Ingress (L7 LB)も作成可能
- Self Hostもできる(今回未検証)
備考
- 簡単に利用できる公開用のKubernetes Clusterとしてはめちゃめちゃ良い
- ここまでしっかりCluster内部の権限を絞っているということは,マルチクラスタではなくマルチテナントでクラスタをユーザに提供している可能性が高い.
- そもそもクラスタの用意にさほど時間がかからなかった(Clusterを作成するなら普通は15分ぐらいは要する
- Kubernetesにアプリケーションをdeployするためのテストサーバ程度に良さそう
- Pull Requestごとにdeployして検証するみたいな
- 逆に本番環境の複製として構築しようと思ったらCRDが作成できなかったり,権限が足りないといった問題が出てくる
- 実際flux2のdeployに失敗した
- namespaceの作成が
kubectl create ns XXX
でできず,okteto-cliかWeb UI経由でないとできないのがちょっと不便 - Kubernetes勉強会のintroductionには良さそう