Black lives matter.
We stand in solidarity with the Black community.
Racism is unacceptable.
It conflicts with the core values of the Kubernetes project and our community does not tolerate it.
We stand in solidarity with the Black community.
Racism is unacceptable.
It conflicts with the core values of the Kubernetes project and our community does not tolerate it.
Kubernetes v1.11 [beta]
Kubernetes 1.8 [alpha]
独自のクラウドコントローラーマネージャーを構築する方法を説明する前に、クラウドコントローラーマネージャーがKubernetesの内部でどのように機能するかに関する背景を知っておくと役立ちます。
クラウドコントローラーマネージャーはGoインターフェースを利用するkube-controller-manager
のコードで、任意のクラウドの実装をプラグインとして利用できるようになっています。スキャフォールディングと汎用のコントローラー実装の大部分はKubernetesのコアになりますが、クラウドプロバイダーのインターフェイスが満たされていれば提供されているクラウドプロバイダーのインターフェイスが実行されるようになります。
実装の詳細をもう少し掘り下げてみましょう。すべてのクラウドコントローラーマネージャーはKubernetesコアからパッケージをインポートします。唯一の違いは、各プロジェクトが利用可能なクラウドプロバイダーの情報(グローバル変数)が更新される場所であるcloudprovider.RegisterCloudProviderを呼び出すことによって独自のクラウドプロバイダーを登録する点です。
Kubernetesには登録されていない独自のクラウドプロバイダーのクラウドコントローラーマネージャーを構築するには、次の3つのステップに従ってください。
main.go
にインポートし、パッケージに cloudprovider.RegisterCloudProvider を実行するための init
ブロックがあることを確認します。既存の独自クラウドプロバイダーの実装例を利用すると役立つでしょう。独自クラウドプロバイダーの実装例のリストはこちらにあります。
Kubernetesに登録されているクラウドプロバイダーであれば、Daemonset を使ってあなたのクラスターで動かすことができます。詳細についてはKubernetesクラウドコントローラーマネージャードキュメントを参照してください。