Kubernetesを使用する際の便利なユーティリティ





この記事では、さまざまな機能を実装し、日常業務に役立つように設計されたKubernetes用のサードパーティのオープンソースユーティリティについて簡単に説明します。 それらの4つは英語の資料から取られ、構成の自動更新、コンテナー/ポッド/ノードの負荷の追跡、コンテキストの切り替え、DINDクラスターの作成(DockerのDocker)に役立ちます。 残りはGitHubにあり、短いリストが表示されます。



キューブアプライヤー





Boxオンラインストレージサービスは、Kubernetesでの展開に使用されるいくつかのツールのソースコードを開きます。 4月にそのようなプロジェクトの1つ-kube-applier が発表されました



Kube-applierはKubernetesでサービスとして起動し、GitリポジトリからKubernetesクラスターの構成ファイルのセットを取得し、クラスター内のポッドに順次適用します。 これらの変更がファイルに表示されるたびに、リポジトリから自動的に取得され、対応する送信に適用されます。 ここでkube-applierの構成例を参照してください。)



変更は、スケジュールまたは要求に応じて適用することもできます。 Kube-applierは、起動するたびにアクションを記録し、Prometheusで監視するためのメトリックを提供します。







キューブトップ





Kubetopは、実行中のすべてのノード、これらのノード上のすべてのポッド、これらのポッド内のすべてのコンテナー、およびそれぞれのプロセッサーおよびRAMリソースの消費を一覧表示するコンソールユーティリティです-従来のUnix topユーティリティと同様です。 このツールは、詳細なロギング/レポートの完全な代替として推奨できません。 彼らが提供する情報は非常に限られていますが、時にはそのような簡潔さであり、Kubernetesクラスターの状態を簡単に調べることは非常に有用です。



実際、Kubernetesの一部としてのkubectl



も同様の機能がありますが、Kubetopにはより視覚的な出力があります。



 kubetop - 13:02:57 Node 0 CPU% 9.80 MEM% 57.97 ( 2 GiB/ 4 GiB) POD% 7.27 ( 8/110) Ready Node 1 CPU% 21.20 MEM% 59.36 ( 2 GiB/ 4 GiB) POD% 3.64 ( 4/110) Ready Node 2 CPU% 99.90 MEM% 58.11 ( 2 GiB/ 4 GiB) POD% 7.27 ( 8/110) Ready Pods: 20 total 0 running 0 terminating 0 pending POD (CONTAINER) %CPU MEM %MEM s4-infrastructure-3073578190-2k2vw 75.5 782.05 MiB 20.76 (subscription-converger) 72.7 459.11 MiB (grid-router) 2.7 98.07 MiB (web) 0.1 67.61 MiB (subscription-manager) 0.0 91.62 MiB (foolscap-log-gatherer) 0.0 21.98 MiB (flapp) 0.0 21.46 MiB (wormhole-relay) 0.0 22.19 MiB
      
      





KubectxおよびK8senv





Kubernetesは、コンテキストの概念を使用して、さまざまな構成のクラスターにアクセスします。 kubectl



ネイティブコンソールユーティリティでそれらを切り替えることは、この問題を解決するサードパーティの方法が登場した結果として、あまり便利ではありません。



Kubectx-Kubernetesコンテキストに短い名前を割り当て、それらを切り替えることができるBashスクリプト。 そして、引数としてハイフンを渡すと、前のコンテキストに切り替わります。 このスクリプトは、<Tab>をクリックすることによる名前の自動追加もサポートしています。



 $ kubectx minikube Switched to context "minikube". $ kubectx - Switched to context "oregon". $ kubectx - Switched to context "minikube". $ kubectx dublin=gke_ahmetb_europe-west1-b_dublin Context "dublin" set. Aliased "gke_ahmetb_europe-west1-b_dublin" as "dublin".
      
      





別のコンテキスト切り替えユーティリティであるk8senvは、機能がわずかに劣ります。



kubeadm-dind-cluster





ご存知のように、単一ノードでのローカルKubernetesインストールのテスト実行には、プロジェクト自体からの優れたターンキーソリューションがあります-Minikubeです。 また、Kubernetes自体を実験または開発するために多くのノードのクラスターを展開したい人のために、Mirantisの製品-kubeadm-dind-cluster(KDC)があります。



KDCはkubeadm



を使用して、仮想マシンではなくDockerコンテナから作成されたクラスターを起動します(このためには、DIND、DockerのDockerを使用します- 約Transl。 。 選択した実装により、クラスターをより速く再起動できます。これは、Kubernetes自体の開発時にコードの変更の結果をすばやく確認する必要がある場合に特に役立ちます。 KDCは継続的な統合環境でも使用できます。 GNU / Linux、Mac OS、およびWindowsで動作し、Goのインストールは不要です。 Kubernetesのdockerizedビルドを使用します。



Kubernetes 1.6に基づいてKDCを操作する例:



 $ wget https://cdn.rawgit.com/Mirantis/kubeadm-dind-cluster/master/fixed/dind-cluster-v1.6.sh $ chmod +x dind-cluster-v1.6.sh $ #   $ ./dind-cluster-v1.6.sh up $ #    kubectl  PATH $ export PATH="$HOME/.kubeadm-dind-cluster:$PATH" $ kubectl get nodes NAME STATUS AGE kube-master Ready,master 1m kube-node-1 Ready 34s kube-node-2 Ready 34s $ # Kubernetes dashboard   http://localhost:8080/ui $ #  ,       $ ./dind-cluster-v1.6.sh up $ #   $ ./dind-cluster-v1.6.sh down $ #     DIND $ ./dind-cluster-v1.6.sh clean
      
      





その他のユーティリティ



GitHubで利用可能で、元の記事には記載されていないKubernetes用の他のユーティリティのリスト:















翻訳者からのPS



ブログもご覧ください。






All Articles