ときに、どのようにどこで使用するとCLAsterAPIとCLAsterAPI Azure(capz)の
7488 ワード
本稿では、カスタムシナリオをテストするために、Azureで自己管理されたKubernetesクラスタを使用する理由、時、および方法について説明します.
Kubernetesはとても大きくて複雑になってきたので、ほとんどの企業は自分自身を実行するのではなく、マネージサービス(例えばAK)を使用したい.管理されたKubernetesサービスを使用することによって、これはKubernetesの最適化、バックアップとアップグレードの代わりに彼らの中心的な能力に集中するために操作チームを解放します.
これは操作上の負担を軽減しますが、プラットフォームを変更する能力を失います.時々、これらは許容できるトレードオフです、時々、あなたはそれをあなた自身で管理する必要があります.
歴史的に、AKエンジンはAzureの上でアンマネージKubernetesクラスタをつくるためのOSSツールでした、しかし、それは若干の制限を持ちました.CAPI/CAPZ is the go-forward solution 自己管理クラスタの作成と操作を宣言します.
私は非常にスコットロウの記事を読むことをお勧めしますAn introduction to CAPI . それはここで使用される用語や概念の多くをカバーしています.
capi/capzを使用する理由の一つは、AzureのKubernetesのテストと開発ツールです.たとえば、次のシナリオを構築してテストする必要があります. 労働者ノードへのカーネル変更 制御プレーンノード上のK 8 S設定への変更 別のCNIのインストール K 8 sを管理するためのK 8 sの使用 この図は、スタータcapi/capzクラスタの高レベルアーキテクチャを示す.
この記事の残りの部分を使用して上記のシナリオを実装する方法を説明しますCAPI quickstart . コマンド引数が時間とともに変化するので、この記事は手順を説明し、このような完全な詳細へのリンクを提供します.
Link to CAPI Quick Start with details :
同様RepRap , CapiはKubernetesクラスタを使用してKubernetesクラスタを作る最も簡単な方法はKubernetes IN Docker (KIND) . 名前が意味するように、それはDockerコンテナとして実行されるKubernetesクラスタです.これは「ブートストラップクラスタ」と呼ぶものの出発点です.
Create Kind Cluster :
このブートストラップクラスタを使用して、すべてのCRDを含み、CAPIコントローラを実行する「管理クラスタ」を初期化します.これは、我々のシナリオを満たすために我々の変化の全てを適用するところです.
Initialize cluster for Azure :
管理クラスタが準備されているので、ワークロードクラスタがどのように見えるかを定義します.ありがたいことに、我々が選ぶことができる異なる味があります.デフォルトを使用すると、仮想マシンを使用してアンマネージK 8 Sクラスタを取得します.
Generate cluster configuration :
完全なドキュメントはCAPI (baseline) CRDs and CAPZ (Azure specific resources) CRDs .
労働者ノードを変更したい場合は、KubeAdmConfigTemplateでprekubeadmcommandとpostbebeadmcommandディレクティブを追加したい場合があります.
コントロールプレーンを変更する場合は、KubeAdmControlPlaneに変更を加えることができます.これにより、様々なコンポーネントをカスタマイズするためにKubeadm APIを活用できます.
たとえば、Kube ApiServerにフィーチャーゲートを有効にするには、次の手順に従います.
これらの変更を行った後、あなたの管理クラスタにリソースを適用することで、残りの手順に進むことができます.
クラスタがどのように見えるかを定義したので、リソースを管理クラスタに適用します.capz演算子は、更新されたリソースを検出し、Azureリソースマネージャーに問い合わせます.
Apply the workload cluster :
あなたが変更をした後
Watch the cluster creation : ワークロードクラスタが稼働している今、それを使用して起動する時間です!
現在、我々は2つのクラスタ(AtureのDockerとWorkLoadクラスタの管理クラスタ)を扱っています.簡単に、ローカルディレクトリに保存します.
Get the Kubeconfig for the workload cluster :
デフォルトでは、ワークロードクラスタにはCNIがなく、インストールされなければなりません.
Deploy the CNI :
あなたがあなたのCNIとしてフランネルを使用したいならば、あなたはあなたのワークロードクラスタをつくるあなたの管理クラスタにリソースを適用することができます.
しかし、Deploying the CNI , 次の手順を実行できますInstall Flannel walkthrough .
完了したら、簡単に両方のワークロードと管理クラスタをクリーンアップすることができます.
クラスタを削除します
ワークロードクラスタを再度作成する場合は、Capiクイックスタートを再適用することでできます.ヤル
マネージクラスタの削除
再度管理クラスタを作成する場合は、最初から起動する必要があります.ワークロードクラスタを削除せずに管理クラスタを削除すると、ワークロードクラスタとAzureリソースが残ります.
概要
Kubernetesはとても大きくて複雑になってきたので、ほとんどの企業は自分自身を実行するのではなく、マネージサービス(例えばAK)を使用したい.管理されたKubernetesサービスを使用することによって、これはKubernetesの最適化、バックアップとアップグレードの代わりに彼らの中心的な能力に集中するために操作チームを解放します.
これは操作上の負担を軽減しますが、プラットフォームを変更する能力を失います.時々、これらは許容できるトレードオフです、時々、あなたはそれをあなた自身で管理する必要があります.
歴史的に、AKエンジンはAzureの上でアンマネージKubernetesクラスタをつくるためのOSSツールでした、しかし、それは若干の制限を持ちました.CAPI/CAPZ is the go-forward solution 自己管理クラスタの作成と操作を宣言します.
私は非常にスコットロウの記事を読むことをお勧めしますAn introduction to CAPI . それはここで使用される用語や概念の多くをカバーしています.
capi/capzを使用する理由の一つは、AzureのKubernetesのテストと開発ツールです.たとえば、次のシナリオを構築してテストする必要があります.
この記事の残りの部分を使用して上記のシナリオを実装する方法を説明しますCAPI quickstart . コマンド引数が時間とともに変化するので、この記事は手順を説明し、このような完全な詳細へのリンクを提供します.
Link to CAPI Quick Start with details :
base command to run
種類クラスターを作成する
同様RepRap , CapiはKubernetesクラスタを使用してKubernetesクラスタを作る最も簡単な方法はKubernetes IN Docker (KIND) . 名前が意味するように、それはDockerコンテナとして実行されるKubernetesクラスタです.これは「ブートストラップクラスタ」と呼ぶものの出発点です.
Create Kind Cluster :
kind create cluster
クラスタの初期化
このブートストラップクラスタを使用して、すべてのCRDを含み、CAPIコントローラを実行する「管理クラスタ」を初期化します.これは、我々のシナリオを満たすために我々の変化の全てを適用するところです.
Initialize cluster for Azure :
clusterctl init --infrastructure azure
クラスタ構成の生成
管理クラスタが準備されているので、ワークロードクラスタがどのように見えるかを定義します.ありがたいことに、我々が選ぶことができる異なる味があります.デフォルトを使用すると、仮想マシンを使用してアンマネージK 8 Sクラスタを取得します.
Generate cluster configuration :
clusterctl generate cluster capi-quickstart > capi-quickstart.yaml
現在、ワークロードクラスタを定義するCRDSを含むファイルがあります.私たちはCAPIクイックスタートを変更します.YAMLと我々のシナリオの各々を実装するためにCRDSを編集してください.完全なドキュメントはCAPI (baseline) CRDs and CAPZ (Azure specific resources) CRDs .
シナリオ:ワーキングノードのカーネル変更
労働者ノードを変更したい場合は、KubeAdmConfigTemplateでprekubeadmcommandとpostbebeadmcommandディレクティブを追加したい場合があります.
preKubeadmCommands
クラスタに参加する前に、コマンドリストをワーカーノードで実行できます.postKubeadmCommands
コマンドの一覧を、クラスタに参加した後のワーカーノードで実行できます.apiVersion: bootstrap.cluster.x-k8s.io/v1alpha4
kind: KubeadmConfigTemplate
metadata:
name: capi-quickstart-md-0
namespace: default
spec:
template:
spec:
preKubeadmCommands:
- wget -P /tmp https://kernel.ubuntu.com/<path>.deb
- dpkg -i /tmp/<package name>.deb
postKubeadmCommands:
- reboot
これらの変更を行った後、あなたの管理クラスタにリソースを適用することで、残りの手順に進むことができます.Kubernetesコンポーネントを変更する
コントロールプレーンを変更する場合は、KubeAdmControlPlaneに変更を加えることができます.これにより、様々なコンポーネントをカスタマイズするためにKubeadm APIを活用できます.
たとえば、Kube ApiServerにフィーチャーゲートを有効にするには、次の手順に従います.
apiVersion: controlplane.cluster.x-k8s.io/v1alpha4
kind: KubeadmControlPlane
metadata:
name: capi-quickstart-control-plane
namespace: default
spec:
kubeadmConfigSpec:
clusterConfiguration:
apiServer:
extraArgs:
feature-gates: MyFeatureGate=true
上記の例は簡潔にいくつかのフィールドを省略します.既存のargsや設定を変更しないようにしてください.これらの変更を行った後、あなたの管理クラスタにリソースを適用することで、残りの手順に進むことができます.
ワークロードクラスタを適用する
クラスタがどのように見えるかを定義したので、リソースを管理クラスタに適用します.capz演算子は、更新されたリソースを検出し、Azureリソースマネージャーに問い合わせます.
Apply the workload cluster :
kubectl apply -f capi-quickstart.yaml
クラスタの作成を監視する
あなたが変更をした後
capi-quickstart.yaml
リソースを適用し、クラスタを見て準備ができている.Watch the cluster creation :
kubectl get cluster
clusterctl describe cluster capi-quickstart
kubectl get kubeadmcontrolplane
– コントロールプレーンの確認ワークロードクラスタのKubeconfigを取得する
現在、我々は2つのクラスタ(AtureのDockerとWorkLoadクラスタの管理クラスタ)を扱っています.簡単に、ローカルディレクトリに保存します.
Get the Kubeconfig for the workload cluster :
clusterctl get kubeconfig capi-quickstart > capi-quickstart.kubeconfig
CNIをインストールする
デフォルトでは、ワークロードクラスタにはCNIがなく、インストールされなければなりません.
Deploy the CNI :
kubectl --kubeconfig=./capi-quickstart.kubeconfig apply -f https://...calico.yaml
シナリオ:別のCNIをインストールする
あなたがあなたのCNIとしてフランネルを使用したいならば、あなたはあなたのワークロードクラスタをつくるあなたの管理クラスタにリソースを適用することができます.
しかし、Deploying the CNI , 次の手順を実行できますInstall Flannel walkthrough .
クリーンアップ
完了したら、簡単に両方のワークロードと管理クラスタをクリーンアップすることができます.
クラスタを削除します
ワークロードクラスタを再度作成する場合は、Capiクイックスタートを再適用することでできます.ヤル
マネージクラスタの削除
再度管理クラスタを作成する場合は、最初から起動する必要があります.ワークロードクラスタを削除せずに管理クラスタを削除すると、ワークロードクラスタとAzureリソースが残ります.
概要
Kubernetesがどのようにコンテナーを使用してコンテナをオーケストレーションすることができるかに似て、capi/capzは同じことをすることができます、しかし、AzureでKubernetesクラスタのために.
この記事では、Capi/capzを使用するときのシナリオと、その実装方法についてのチュートリアルを説明しました.
私は特にCapi/Capzの将来のために興奮しています、そして、それはどのようにGitopsのような他の雲のネイティブの方法論と統合することができますか?
P . S .私は非常にcecileロバートmichonのGithub ) 本稿の技術指導彼女のサポートなしで、私はこれを遠くまで得ていなかったでしょう、そして、確かにいくつかの主要なシナリオを逃したでしょう.cecileありがとう!
Reference
この問題について(ときに、どのようにどこで使用するとCLAsterAPIとCLAsterAPI Azure(capz)の), 我々は、より多くの情報をここで見つけました
https://dev.to/lastcoolnameleft/when-how-and-where-to-use-clusterapi-capi-and-clusterapi-for-azure-capz-1lpc
テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol
Reference
この問題について(ときに、どのようにどこで使用するとCLAsterAPIとCLAsterAPI Azure(capz)の), 我々は、より多くの情報をここで見つけました https://dev.to/lastcoolnameleft/when-how-and-where-to-use-clusterapi-capi-and-clusterapi-for-azure-capz-1lpcテキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol