- 自動デプロイ、スケーリング、アプリ・コンテナの運用自動化のために設計されたオープンソースのプラットフォーム
- アプリを迅速に予定通りにデプロイする (コンテナをサーバー群へ展開する)
- 稼働中にアプリをスケールする(稼働中にコンテナ数を変更する)
- 新機能をシームレスに提供開始する (稼働中にロールアウトする)
- ハードウェアの利用率を要求に制限する (コンテナで共存させて稼働率を高くする)
- kubernetesはpods, deployments, servicesの基本要素で構成されており、標準的には、serviceにロードバランサーを設定してIPを晒し、外部インターネットからアクセスできるようにします
- しかし、HTTPSにリダイレクトするには内部でnginx-proxyを持つ必要がありますし、service毎にIPアドレスが生成されてしまうという問題がある
関連ツール †
- 40MBという超軽量なKubernetesの実装です
- 高可用性(HA)は現在未実装
- Lightweight Kubernetes Easy to install. A binary of less than 40 MB. Only 512 MB of RAM required to run.
- k3sはDockerの代わりにcontainerdが内蔵されているので、Dockerは不要
コマンド †
kubectl †
データ永続化 †
- Podにおけるデータ永続化とは、Podを削除した後にもデータを保持し続ける仕組みのこと
オンプレミス †
pods †
ingress †
- ingressはHTTPSレイヤーのロードバランサーであり、以下のメリットがある
- IP管理などを個別のserviceではなくingressで管理できる
- Googleが推奨している
クラウド †
AWS †
Azure †
Windows †
Windowsコンテナ †
- コントロールプレーンノードはLinux
- ワーカーノードはワークロードのニーズに応じてWindowsまたはLinuxで実行
- Windows Server 2019は、サポートされている唯一のWindowsオペレーティングシステムであり、Windows (kubelet、コンテナランタイム、kube-proxyを含む)でKubernetesノードを有効にする
ホストOSとWindowsコンテナの互換性 †
- プロセス分離のWindowsコンテナは、厳格な互換ルールがある。つまり、ホストOSとコンテナのベースイメージOSバージョンが一致していなければならない
- Hyper-V分離がKubernetesでサポートされるとこの制限や互換性ルールは変更される予定
Pod †
- PodはKubernetesの基本的な構成要素であり、小さく、シンプルな構成やデプロイのためのKubernetesのオブジェクトモデル
- 同じPodにWindowsとLinuxのコンテナを含めてデプロイすることはできない
- Pod内のすべてのコンテナは、各ノードが特定のプラットフォームとアーキテクチャーで構成されており、同一ノード内に配置されるため
ネットワーク †
- Windowsは5つの異なるネットワークドライバー/モードをサポート
- L2bridge, L2tunnel, Overlay, Transparent, NAT
- WindowsおよびLinuxワーカーノードを持つクラスターを構成するためには、WindowsとLinuxの両方で互換性のあるネットワークソリューションが必要になる
Windowsライセンス †
環境構築 †
開発 †
ASP.NET Core †
活用方法 †
ウィルス対策 †