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 つの解決策

推薦する

ブログプロモーションの経験について話す

Weiboの登場により、その即時性、利便性などの利点はすぐに数え切れないほどの人々の注目を集めました...

joes-cloud VPSクラウドの簡単な紹介

2002年に創業したとされるホスティングプロバイダーのjoes-cloud(Joe's Cl...

クラウド移行を成功させるためのヒント

世界中で進行中のコロナウイルスの流行は、さまざまな業界の組織に新たな課題をもたらしています。これは、...

テンセントの唐道勝氏:港とクラウドの融合はスマートな港と海運を助け、デジタルとリアルの融合は強力な運輸国家を築く

11月16日、香港で開催された第2回世界海運大会に、テンセントグループクラウド・スマート産業グループ...

クラウド コンピューティングとルール: 嵐の目を追いかけて

ISO 27018 規制は、クラウド コンピューティング業界の参加者が個人データを適切に処理している...

リンク開発の履歴から高品質の外部リンクを判断するにはどうすればよいでしょうか?

Lao Niu は、すべての SEO 担当者が「コンテンツは王、リンクは女王」という格言を理解してい...

海外のEコマースサイトのファッションデザイン要素7つを紹介

最近、電子商取引ウェブサイトのデザインに関するケーススタディを書きたいと思っており、国内の電子商取引...

詳細かつ高度: JVM メモリ ヒープ レイアウトのグラフィカル分析

[[258254]] Java がクロスプラットフォームを実現できる根本的な理由の 1 つは、クラス...

vmissはどうですか?月額18元の米国cn2gia高帯域幅VPSの簡単なレビュー

vmiss vpsの米国vpsは、デフォルトで米国のcn2 giaネットワーク(200M〜1Gbps...

SEOの観点からサイトの価値を評価する方法

土地の価値評価に関して、「土地の価値を直接見積もることができる専門のウェブサイトがあるのだろうか」と...

マット・カッツがGoogleの最適化フィルターの対処法を教える

Matt Cutts 氏は Google のシニア エンジニアであり、SEO は彼にとって決して未知...

実名登録は単なるマーケティング戦略。出会い系サイトは信頼の危機に直面している

ネット恋愛や結婚、電子商取引、その他のオンラインコミュニケーションなど、実名登録は発展のトレンドにな...

コンバージョン率についてお話しします。eコマース ウェブサイトのコンバージョン率の分解によって、運用の方向性が決まります。

今日は、一部の人が誤解していることが常にあるため、いくつかの概念を普及させたいと思います。これが「コ...

Oracle Blockchain Cloud ServiceがZhengbao遠隔教育の職場における信頼の連鎖の確立を支援

人材市場における熾烈な就職競争に直面し、履歴書を誇張したり過度に修正したりする現象がますます一般的に...

ディープ・スロートとの対話:UCはバイドゥの20億ドルの買収を拒否

テキスト | 王冠雄これは中国のインターネット業界の合併と買収の記録となるはずだった。モバイルブラウ...