Web Analytics
Back
Featured image of post 使用 Visual Studio Code 連接至 Kubernetes Cluster

使用 Visual Studio Code 連接至 Kubernetes Cluster

以 Azure Kubernetes Services 為例

過去因為自行建立 Kubernetes Cluster (或協助客戶建立 Azure Kubernetes Services),操作皆透過 Kubectl 命令進行操作,缺點是免不了 繁複的步驟且容易發生指令錯誤,在故障排除時相當不方便。今天本篇文章將介紹透過 Visual Studio Code Kubernetes 延伸模組,以透過視覺化的方式進行操作 Kubernetes。

   

前置工作 - 安裝 Kubernetes 模組

在開始連線至 Cluster 並進行操作之前,必須先安裝 Visual Studio Code 與 Kubernetes Extension (延伸模組)

 

Kubernetes Extension 安裝完成後,點選左邊模組。開啟時會提示未安裝 kubectl、Helm 與 minikube (kubectl 為必要,Helm 與 minikube 為選用)

Kubeconfig 說明與匯出

在開始使用 IDE 連線至 Kubernetes Cluster 之前,你必須有 Kubeconfig。Kubeconfig 內包含 Cluster、User、Namespace 與身分認證相關資訊。kubectl 命令即是使用 Kubeconfig 與 Cluster 內 API 伺服器進行通訊。 Kubeconfig。Kubeconfig 檔案格式如下:

apiVersion: v1
clusters:
- cluster:
    certificate-authority-data: <ca-data-here>
    server: https://your-k8s-cluster.com
  name: <cluster-name>
contexts:
- context:
    cluster:  <cluster-name>
    user:  <cluster-name-user>
  name:  <cluster-name>
current-context:  <cluster-name>
kind: Config
preferences: {}
users:
- name:  <cluster-name-user>
  user:
    token: <secret-token-here>

前言

預設 Kubeconfig 會儲存在 $HOME/.kube 目錄下名稱為 config 的文件內 (您可以透過環境變數或使用 –kubeconfig 參數來指定其他 kubeconfig)。我們以 Azure Kubernetes Services 為例,您可以透過 az aks get-credentials --resource-group <資源群組名稱> --name <Kubernetes 服務名稱> 指令取得 credentials,此時畫面上會顯示 kubeconfig 位置 (如下圖 Step 1)。開啟 Cloud Shell,點選上方檢視檔案,找到.kube\config,此檔案即為 kubeconfig (如下圖 Step 2 與 3)。

注意:您可能需要進行檢視與編輯,只留下需要使用 Kubernetes Cluster 的資訊

 

另一種方式,Azure Kubernetes Services 可以透過下列指令匯出 kubeconfig 檔案。我們可以下載此檔案,作為後續 VS Code 連線 Kubenetes Cluster 時使用。

az aks get-credentials --resource-group <資源群組名稱> --name <Kubernetes 服務名稱> --file kubeconfig

注意:Token 會逾期,您需要 kubeconfig 定期更新 Token 內容

 
 

連線至 Kubernetes Cluster

  1. 點選左邊 Kubernetes 延伸模組,點選在 Cluster 旁 … 按鈕,選擇 Set Kubeconfig。

 

  1. 上方命令選擇區選擇 + Add new kubeconfig

 

  1. 選擇我們先前匯出的 Kubeconfig

 

  1. 您可以看見 Cluster 資訊,您可以展開它,開始檢視相關資訊

 

  1. 您可以右鍵點選 namespace 選擇 get,即會開啟終端機並產生指令,列出 namespace。以此類推,您可以透過此工具進行更多操作

   

參考資料

  1. 使用 kubeconfig 文件组织集群访问
  2. https://gist.github.com/dcasati/c71243c1a010993d9f281e0f06dc839d
  3. Kubeconfig File Explained With Practical Examples
Built with Hugo   Theme Stack designed by Jimmy