Kubernetes

Cloud Native なアプリ実行基盤 Kubernetes に関する投稿です。

GitHub Container Registry でプライベートなイメージを GitHub Actions + Kubernetes で使う

かなり前 GitHub Packages でコンテナイメージを扱ってました。 blog.kondoumh.com その後 Container Registry が登場しました。Packages の時は public なイメージの Pull にも認証が必要でしたが、Container Registry では不要になっています。そして既存…

Argo Workflow の機能と記法

前回デプロイと動作確認をしたので続きです。 blog.kondoumh.com Steps 順次実行 (コードはリンク先に)。 - - で先行ステップを表現するのはややわかりづらい気がします。 でも DAG っていう GitHub Actions とかでもお馴染みの記法もサポートされてます。 D…

Kubernetes native なワークフローエンジン Argo workflow を動かす

Argo workflow は Cloud Native Computing Foundation にホストされている Kubernetes native なワークフローエンジンです。 github.com Kubeflow でも機械学習のパイプラインエンジンとして使用されています。 blog.kondoumh.com 公式の manifest でインス…

Kubernetes ネイティブなカオスエンジニアリングツール Chaos Mesh を使ってみる

Netflix が提唱した耐障害テスト技法 Chaos Engineering。実行環境に実際に障害を発生させてアプリケーションの復旧をテストする方法です。 Chaos Mesh は Kubernetes クラスターで稼働するアプリケーションをターゲットに Chaos Engineering テストを実行で…

helmfile がステキになってた

helmfile は 複数の Helm Chart をまとめて Kubernetes cluster にデプロイするツールです。 github.com Helm のラッパーとなっており、複数の Chart から構成されるアプリを効率よくデプロイ、更新できます。Helm Chart のインストール順というか依存関係の…

GCP の Microservices demo を GKE で動かしてみる

今年の初めに Google Cloud からマイクロサービスアーキテクチャのデモアプリを GCP にデプロイするハンズオンが出てました。 cloud.google.com Hipster Shop という EC サイトのデモアプリケーションを fork して使用します。 github.com ベースは2年ぐらい…

GitHub Actions & kind (Kubernetes IN Docker) で Matrix build の CI を構築

CI で Kubernetes を使いたい場合、自前の Kubernetes 環境か GKE や EKS を利用して常時クラスターを使えるようにしておく方法があります。 しかし、ワーカーのノード数を色々変えてテストしたい、Kubernetes のバージョンを色々変えてテストしたい、常設の…

Kubeflow が MicroK8s の Addon になってた

以前 Kubeflow を MiniKF (Minikube ベースの VirtualBox イメージ) で導入しました。 blog.kondoumh.com その後 Ubuntu 19.10 のリリース時、Kubeflow が MicroK8s の Addon として導入できるようになるというアナウンスがありました。 ubuntu.com MicroK8s…

Argo CD で GitOps 環境を構築する on GKE

GitOps というアプリデプロイ戦略が Cloud Native な CD *1 で普及し始めています。 www.weave.works ソースコードのリポジトリとは別にアプリの設定用リポジトリを用意し、リポジトリの状態とデプロイの状態を一致させるようにツールを利用して管理します。…

開発用 Kubernetes 環境構築ツールの比較

Kubernetes は GKE / EKS / AKS などで提供されているマネージドなサービスを使うのが楽ですが、課金もありますし開発時はローカルの環境が欲しくなります。 シングルノード構成のツールはオートスケーリングなどの機能が使えないという制約はあるものの、ア…

Minikube を macOS (HyperKit) | Windows (Hyper-V) で使う

Minikube は VirtualBox / VMware の VM をノードにして使うケースが多いと思いますが、macOS の Hyperkit や Linux の KVM、そして Windows の Hyper-V などホスト OS の HyperVisor による VM を使うことで、軽量で実行性能の高いノードで環境を構築するこ…

kind (Kubernetes IN Docker) を Docker Desktop for Mac で使う

kind は Kubernetes クラスターを Docker 上で動かすツールです。 github.com コンテナオーケストレーションツールである Kubernetes 自体をコンテナ上で動かす・・ちょっとイメージしづらいですが、コンテナをノード *1 として利用することで、Minikube の…

Kubernetes ベースの機械学習基盤 Kubeflow をラップトップにデプロイする

機械学習を業務に適用するには、データの収集、機械学習モデルの作成、機械学習モデルを利用する API 開発、API を利用するアプリ開発、プロダクションへの適用、運用時の経年変化によるモデルの修正 といったプロセスで進めることになります。 Kubeflow は…