“kube-prompt” – Kubernetes 的自動完成 Shell 命令

在之前介紹了 kube-shell 的幾篇文章之後,我們現在介紹了另一個適用於 Kubernetes 的優秀 shell,稱為 kube-prompt。 在本文中我們再次使用 Minikube 本地集群進行演示,但這次我們將使用 KVM 而不是 VirtualBox. 當然,您也可以在其中運行 kube-prompt VirtualBox 如果您更喜歡它,但使用 KVM 的理由很少。 其中最重要的: VirtualBox 由於內核驅動程序不在樹中,因此給您的內核污染標誌。 有些人報告了 kmods 的內核不穩定 VirtualBox,並且由於內核被它們污染了,您的錯誤報告不會被視為首要任務。 KVM 在主線內核中,所以它沒有這樣的問題。 我們將在本文中使用 Ubuntu,在我的備用筆記本電腦 X220T 上。

安裝 KVM

顯然,我們首先需要的是 KVM 安裝。

sudo apt-get install qemu-kvm libvirt-bin ubuntu-vm-builder bridge-utils

為了能夠順利使用 libvirt,您需要將您的用戶添加到 libvirt 組。 以您的用戶身份登錄,運行此命令

sudo adduser `id -un` libvirt

最後要測試你的 KVM 安裝,運行這個命令

kvm-ok

應該給你這樣的東西

INFO: /dev/kvm exists
 KVM acceleration can be used

安裝 kubectl、minikube 和 docker-machine-driver-kvm

我們需要安裝所有的二進製文件。 Kubectl當然是其中第一個,所以我們使用以下3個命令安裝它。

curl -LO https://storage.googleapis.com/kubernetes-release/release/v1.7.0/bin/linux/amd64/kubectl

然後添加可執行位並將其移動到路徑

chmod +x kubectl
sudo mv kubectl /usr/local/bin/kubectl

接下來是 minikube。 截至撰寫本文時,最新版本為 0.22。 我們可以用這個襯墊來安裝它

curl -Lo minikube https://storage.googleapis.com/minikube/releases/v0.22.0/minikube-linux-amd64 && chmod +x minikube && sudo mv minikube /usr/local/bin/

為了讓 minikube 在 KVM 上運行,我們需要 docker-machine-kvm 驅動程序。 這是下載它的方法。

curl -LO https://github.com/dhiltgen/docker-machine-kvm/releases/download/v0.10.0/docker-machine-driver-kvm-ubuntu16.04

再次,可執行位並移動到路徑

chmod +x docker-machine-driver-kvm-ubuntu16.04

sudo mv docker-machine-driver-kvm-ubuntu16.04 /usr/local/bin/docker-machine-driver-kvm

啟動集群並默認使用 KVM 運行

二進製文件已就位,但默認情況下 minikube 會查找 VirtualBox. 所以我們可以使用這個命令將默認值更改為 KVM:

minikube config set vm-driver kvm

之後我們可以運行創建集群的命令

minikube start

輸出應該與此類似

安裝 kube-prompt

最後,現在我們有一個集群在運行,我們可以安裝 kube-prompt

wget https://github.com/c-bata/kube-prompt/releases/download/v1.0.1/kube-prompt_v1.0.1_linux_amd64.zip

我們需要解壓縮,所以如果你沒有它,現在是時候安裝它了。

sudo apt install unzip

然後讓我們解壓縮存檔。

unzip kube-prompt_v1.0.1_linux_amd64.zip

下一步是添加可執行位並將其移動到路徑

chmod +x kube-prompt
 sudo mv kube-prompt /usr/local/bin/kube-prompt

使用 kube-prompt

輸入 kube prompt 只需輸入 kube-prompt 即可。

從那裡我們獲得了自動完成選項,與 kube-shell 不同的是,不需要輸入 kubectl 命令。 毫無疑問,他們仍然需要 kubectl,但 kube-prompt 只是自動輸入它。 以下命令將為您提供 hello-minikube 測試部署和創建的服務:

kubectl run hello-minikube --image=gcr.io/google_containers/echoserver:1.7 --port=8080
kubectl expose deployment hello-minikube --type=NodePort

以下是 kube-prompt 的一些示例:

獲取部署

獲取豆莢

執行

獲取命名空間

獲取 pods –all-namespaces

描述端點

正如我們所見,kube-prompt 有點類似於我們之前介紹的 kube-shell。 主要區別在於您不必鍵入 kubectl。 事實上,如果你輸入它,它會拋出錯誤,因為它會被解析為 kubectl。 Kubernetes 使用 kube-prompt 和其他 shell 變得容易和高效,但它們仍然需要打磨,因為它們的邊緣很粗糙。 kube-prompt 團隊的目標概述於 github頁面. 他們計劃支持大部分值得稱讚的 kubernetes 命令。 現在,我將繼續使用普通的 kubectl,因為還沒有任何 shell 準備好生產。 感謝您的閱讀,這就是本文的全部內容。