クルスターキット

KlusterKit:Kubernetesの展開を簡素化し、物理的に隔離されたローカル環境で作業するためのオープンソースツールキット









本日、Platform9は、GitHubのApache v2.0ライセンスに基づいて、3つのツールキットであるKlusterkitのソースコードを公開したことをお知らせします。







私たちの顧客は、プライベートデータセンターでソフトウェアを展開しています。これらのデータセンターは、インターネットに接続されていないことがよくあります(セキュリティ上の理由またはその他の理由により)。 これらの大企業は、Kubernetesを活用してアプリケーションを近代化し、同時に外部の世界とはほとんど関係のない異なるデータセンターに展開したいと考えています。 そしてここで、Klusterkitが助けとなり、物理的に隔離された環境でのK8sクラスターの配信と管理を簡素化します。







Klusterkitには、Kubernetes実稼働クラスターのライフサイクルを管理するために一緒にまたは個別に使用できる3つの独立したツールが含まれています。







  1. etcdadm 、クラスター管理を簡素化するCLIなど
  2. nodeadmは、 kubeadmを補完し、kubeadmに必要な依存関係を展開するノード管理CLIです。
  3. cctlは、KubernetesコミュニティからCluster APIを受け入れ、nodeadmおよびetcdadmを使用して、ローカル環境や物理的に隔離された環境でも高可用性Kubernetesクラスターを簡単に提供および維持するクラスターライフサイクル管理ツールです。


これら3つのツールを組み合わせて、次のタスクを実行します。









Klusterkitの機能





Klusterkitソリューションアーキテクチャ









フォールトトレランスと単純化のために、Klusterkitは単一のcctl-state.yamlファイルを使用してKubernetesクラスターメタデータを保存します。 cctl CLIを使用して、このステータスファイルを持つ任意のマシン上のKubernetesクラスターのライフサイクルを管理できます。 オペレーターのラップトップまたはKubernetesクラスターの一部である他のコンピューターを使用できます。







Cctlは、クラスターのCRUD操作のライブラリとしてアップストリームインターフェイスcluster-apiを実装して呼び出します。 Platform9のオープンソースベアメタルcluster-api プロバイダーであるssh-providerを使用します。このプロバイダーは、etcdadmおよびnodeadmを呼び出してクラスターで操作を実行します。







Klusterkitとそのコンポーネントの使用方法:



1-go getコマンドを使用して、3つのツールを簡単に組み立てることができます。







go get -u github.com/platform9/cctl go get -u github.com/platform9/nodeadm go get -u github.com/kubernetes-sigs/etcdadm
      
      





2-その後、これらの実行可能ファイルをパッケージ化し、高度にアクセス可能なKubernetesクラスターを実行するターゲットマシンにコピーできます。 nodeadmおよびetcdadmファイルをバージョンディレクトリに配置します。







 cp $GOPATH/bin/nodeadm /var/cache/ssh-provider/nodeadm// cp $GOPATH/bin/etcdadm /var/cache/ssh-provider/etcdadm//
      
      





3-必要に応じて、物理的に隔離された環境でKubernetesクラスターをローカルで調整します。nodeadmおよびetcdadmダウンロードコマンドを使用して、インターネットにアクセスできるコンピューターに必要な依存関係を事前に簡単にダウンロードできます。 次に、ダウンロードした要素(systemdのkubeletとkubeletユニットファイル、CNI実行可能ファイル、kubeadmファイル、Kubernetes、keepalivedイメージとsystemdファイルを含むすべてのコンテナーイメージ、コンテナーイメージetcdおよび対応する構成ファイル)を簡単にコピーできますcctl、nodeadm、etcdadmとともに物理的に隔離されたホスト。 (詳細については、 wikiを参照してください)。







4-すべてが整ったら、いくつかのコマンドで最初のKubernetesクラスターを作成できます。







-最初にクラスターの資格情報を作成します。







 $GOPATH/bin/cctl create credential --user root --private-key ~/.ssh/id_rsa
      
      





-次に、クラスターオブジェクトを作成します。 –ヘルプはサポートされているオプションをリストします。







 $GOPATH/bin/cctl create cluster --pod-network 192.168.0.0/16 --service-network 192.169.0.0/24
      
      





-最後に、クラスター内の最初のマシンを作成します。







 $GOPATH/bin/cctl create machine --ip $MACHINE_IP --role master
      
      





GitHubのドキュメントを参照してください








All Articles