K8S 実践: 効率的に作業するための非常に実用的な Kubectl エイリアス ツールの推奨

K8S 実践: 効率的に作業するための非常に実用的な Kubectl エイリアス ツールの推奨

みなさんこんにちは。私はSnailです。今日は、k8s クラスターを効率的に管理できる Kubernetes エイリアス ツールを紹介します。以下は関連する紹介です

導入

Kubernetes クラスターの管理と特定のタスクの実行は複雑で時間がかかります。しかし、適切な kubectl エイリアスのセットを使用すれば、Kubernetes の管理を大幅に簡素化し、作業効率を向上させることができます。この記事では、一般的なタスクをより速く簡単に実行するのに役立つ、いくつかの便利な kubectl エイリアスを紹介します。リソース情報のクエリからポッドのトラブルシューティング、ノードの管理まで、これらのエイリアスは Kubernetes ツールキットの貴重なツールになります。それでは、Kubernetes の管理を簡素化するために必要な kubectl エイリアスについて詳しく見ていきましょう。

事前依存関係

これらの便利な kubectl エイリアスの使用を開始する前に、コンピューターが次の前提条件を満たしていることを確認する必要があります。

  • Kubectlをインストールする
  • コマンドライン ツールのプラグイン マネージャーである Krew プラグイン マネージャーをインストールします。現在、Krew には 230 個の kubectl プラグインが配布されています。
  • Kubectl-neat Krew プラグインをインストールします。これにより、Kubernetes マニフェストから不要なものが削除され、読みやすくなります。たとえば、次の図では、赤でマークされた行は冗長であると見なされ、このプラグインによって出力から削除されます。

写真

  • ユーザーディレクトリに、mkdir ~/.kube フォルダを作成します。

エイリアス設定

次のエイリアスコマンドを環境変数に追加し、ソースコマンドを実行して有効にします。

 # autocomplete kubectl & helm source <(kubectl completion zsh) source <(helm completion zsh) alias k=kubectl # when using below aliases, print kubectl command and then execute it function kctl() { echo "+ kubectl $@" && command kubectl $@ } # add aliases collection like 'kgpo' for 'kubectl get pods` from https://github.com/ahmetb/kubectl-aliases [ ! -f ~/.kube/aliases.sh ] && curl -fsSL "https://raw.githubusercontent.com/ahmetb/kubectl-aliases/master/.kubectl_aliases" > ~/.kube/aliases.sh && sed -i -e 's/kubectl/kctl/g' ~/.kube/aliases.sh source ~/.kube/aliases.sh # set default namespace alias kn='kctl config set-context --current --namespace' # get events sorted by last timestamp alias kgel='kctl get events --sort-by=.lastTimestamp' # get events sorted by creation timestamp alias kgec='kctl get events --sort-by=.metadata.creationTimestamp' # get pod's descending events function kger() { kctl get events --sort-by=.lastTimestamp --field-selector involvedObject.name="$@" } # get 'real' all alias kgworld='kctl get $(kubectl api-resources --verbs=list --namespaced -o name | paste -sd ",")' # display all nodes resources request and limits alias kgnr="k get nodes --no-headers | awk '{print \$1}' | xargs -I {} sh -c 'echo {} ; kubectl describe node {} | grep Allocated -A 5 | grep -ve Event -ve Allocated -ve percent -ve -- ; echo '" # start a debug pod (including lots of troubleshooting tools) alias kdebug="kctl -n default run debug-pod --rm -it --tty --image leodotcloud/swiss-army-knife:v0.12 --image-pull-policy=IfNotPresent -- bash" # get pod's containers list function kgpc() { kctl get pod -o jsnotallow="{.spec.containers[*].name}" "$@" && echo "" } # ping a service, ex: 'kping whoami:8080' alias kping='kctl run httping -it --image bretfisher/httping --image-pull-policy=IfNotPresent --rm=true --' # get existing pod's yaml without forbidden fields, ex: 'kyaml pod whoami' function kyaml() { kubectl get "$@" -o yaml | kubectl-neat } # display and delete failed pods in current namespace alias krmfailed='kctl delete pods --field-selector=status.phase=Failed'

追加後、以下に示すように kgpo コマンドを実行して確認します。このコマンドを使用して、ポッド リストを照会できます。便利じゃないですか?

写真

これらのエイリアスの使用例と説明をいくつか見てみましょう。

1. 基本コマンドをより速く実行する

kubectl -aliases Github リポジトリには、上記のリストに含まれる何百もの基本的なエイリアスを生成するスクリプトが含まれています。

いくつかの主要なコマンドの概要は次のとおりです。

 alias k='kubectl' alias kg='kubectl get' alias kgpo='kubectl get pod' alias ksysgpo='kubectl --namespace=kube-system get pod' alias krm='kubectl delete' alias krmf='kubectl delete -f' alias krming='kubectl delete ingress' alias krmingl='kubectl delete ingress -l' alias krmingall='kubectl delete ingress --all-namespaces' alias kgsvcoyaml='kubectl get service -o=yaml' alias kgsvcwn='kubectl get service --watch --namespace' alias kgsvcslwn='kubectl get service --show-labels --watch --namespace' alias kgwf='kubectl get --watch -f' ...

各コマンドの効果を示すために、省略されたコマンドが実行されるたびに完全なコマンドが表示されます。

 ksysgpo

写真

2. 並べ替えやフィルタリングされたイベントを取得する

Kubernetes クラスター内でイベントをソートするのは面倒です。共通エイリアスは、イベントを最終表示日と作成タイムスタンプで並べ替えるのに便利です。

 kgel -A
 kgec -A

写真

さらに、エイリアスを使用して特定のリソースのイベントをフィルタリングすることもできます。

写真

3. ノードのリソース要求と制限を照会する

クラスター内のノードのリソース要求と制限を表示するには、エイリアス kgnr を使用できます。このエイリアスは各ノードのCPUとメモリの割り当て情報を提供します

kgnr

写真

4. ポッドのデバッグを開始する

ポッドのコンテナ イメージには必要なソフトウェアのみがインストールされているため、障害が発生した場合は、トラブルシューティングのために関連ツールをオンラインでインストールし、ポッドを再起動して再インストールする必要があります。ここで提供される kdebug コマンドは、問題を解決するためのすべての基本ツールがプリインストールされている Swiss Army Knife Pod をすばやく起動するためのものです。

写真

組み込みツールの一部を以下に示します。arping、arptables、bridge-utils、ca-certificates、conntrack、curl、docker、dnsutils、ethtool、iperf、iperf3、iproute2、ipsec-tools、ipset、iptables、iputils-ping、jq、kmod、kubectl、ldap-utils、less、libpcap-dev、man、manpages-posix、mtr、net-tools、netcat、netcat-openbsd、openssl、openssh-client、psmisc、socat、tcpdump、telnet、tmux、traceroute、tcptraceroute、tree、ngrep、vim、wget、yq

5. ポッド内のコンテナのリストを取得する

ポッド内のコンテナのリストを取得するには、エイリアス kgpc を使用できます。ポッド内の特定のコンテナにアクセスする必要がある場合に非常に便利です

写真

6. サービス可用性の検出

Kubernetes サービスの可用性をテストするのは面倒です。 kping エイリアスは、HTTP Ping Docker イメージを使用してサービスを ping し、その可用性をチェックします。これは非常に便利です。

 kgsvc

写真

テストのためにkping dp-manager-backend:80を実行します。

写真

7. ポッドのyamlコンテンツを取得する

kubectl get pod -o=yaml を使用してポッド リソースの YAML を表示する場合、一部のフィールドは不要であり、YAML を再デプロイするときに問題が発生する可能性があります。エイリアス kyaml は、不要なフィールドを除外する実行可能なマニフェストを提供することでこの問題を解決します。このプラグインは前提条件として kubectl-neat プラグインに依存していることに注意してください。

kyaml pod pod name クエリを実行します。結果は下の図のようになります。爽やかじゃないですか?

写真

8. 失敗した(および追い出された)ポッドを削除する

失敗したポッドはクラスターをパニックに陥らせ、パフォーマンスに影響を与える可能性があります。 krmfailed エイリアスを使用すると、現在の名前空間で失敗した Pod を簡単に削除できます。

要約する

これらの kubectl エイリアスは、Kubernetes コマンドを簡素化する便利な方法を提供します。これらのエイリアスを使用すると、kubectl コマンドを使用するときに多くの時間を節約できます。特定の情報を取得する場合、Pod をトラブルシューティングする場合、またはリソースを管理する場合、これらのエイリアスはニーズを満たすことができます。

<<:  Helm とは何ですか?クラウドネイティブ アプリケーションのプライベート展開の効率はどのように向上しますか?

>>:  クラウド アプリケーション移行の問題を回避する 4 つの解決策

推薦する

Tiebaでのマーケティングを成功させるためのいくつかの重要な要素をまとめます

「百度鉄破 - 世界最大の中国コミュニティ」、これは鉄破のタイトル部分であり、確かに最大です。中国最...

クラウド関連の IoT 脅威を軽減する方法

モノのインターネット (IoT) は、デバイスやシステムが相互に通信し、データを交換できるようにする...

アント・ファイナンシャル:モバイルが王者、体験が第一

[51CTO.com からのオリジナル記事] モバイル インターネットは、従来の商業銀行のビジネス ...

共有ホスティングに適さない Web サイトの種類は何ですか?

ショートビデオ、セルフメディア、インフルエンサーのためのワンストップサービス今日、多くのウェブマスタ...

15 分で Kubernetes 上に Apache Pinot をセットアップする

Kubernetes に Pinot コントロール プレーンをインストールし、最初の Pinot ク...

質問タイトルについてどれくらい知っていますか?質問タイトルの範囲と意味を分析します

誰もが質問形式のタイトルの書き方に触れたことがあると思います。私たちの日常生活では、誰かに会ったとき...

#黒5# hostinger: 仮想ホストが10%オフ、VPSが44%オフ、ウェブサイト構築に最適

hostingerという会社は実は2004年に設立されましたが、近年になって人気が出てきました。ほと...

オンライン エンターテイメントの時代が到来: モバイル マーケティングはどのように対応すべきでしょうか?

月給5,000~50,000のこれらのプロジェクトはあなたの将来ですネットワーク技術の急速な発展は、...

クラウド コンピューティングが急速に発展している現在でも、企業にはデータ センターが必要ですか?

かつて友人が私にこの質問をしました...しかし、クラウド コンピューティングがどれだけ大きく発展した...

デジタル変革の第二章が始まろうとしており、ハイブリッドマルチクラウド管理が焦点となる

[51CTO.comより引用] 近年、クラウドコンピューティング、人工知能、ブロックチェーンなどの新...

Yan Weilun: クラウド コンピューティングの世界に向けたデータ センター ネットワークの開発

2009 年 7 月、第 1 回「新世代の通信グレード データ センターの構築に関するサミット フォ...

SEO の技術的なハードルが非常に低い場合でも、この方法でコンテンツを作成しますか?

私は数年間 SEO 業界に携わっており、多くの SEO 担当者と会ってきました。技術の勉強に打ち込ん...

1.4.4 社会的要因

1.4.4 社会的要因最初のレベルはソーシャル レベルです。タスク中にユーザーは他のユーザーとどのよ...

ウェブサイトの最適化: ウェブサイトの内部リンク構築の基礎知識

SEO ウェブサイト最適化について言えば、すべての SEO 担当者は、ウェブサイト最適化の 2 つの...