跳至主要内容

RK-API 快速入門指南

您可以透過 Kubernetes API 存取 Rancher 的資源。本指南幫助您作為 Rancher 使用者開始使用此 API。

  1. 在左上角,點選 ☰ > Global Settings。
  2. 找到並複製 server-url 欄位中的位址。
  3. 建立一個沒有範圍的 Rancher API 金鑰。
危險

沒有範圍的 Rancher API 金鑰會授予對使用者可存取的所有資源的無限制存取權限。為防止未經授權的使用,此金鑰應妥善保存並經常輪換。

  1. 建立一個 kubeconfig.yaml 檔案。將 $SERVER_URL 替換為伺服器網址,將 $API_KEY 替換為您的 Rancher API 金鑰:

    apiVersion: v1
    kind: Config
    clusters:
    - name: "rancher"
    cluster:
    server: "$SERVER_URL"

    users:
    - name: "rancher"
    user:
    token: "$API_KEY"

    contexts:
    - name: "rancher"
    context:
    user: "rancher"
    cluster: "rancher"

    current-context: "rancher"

您可以將此檔案與任何相容的工具一起使用,例如 kubectl 或 client-go。如需快速示範,請參閱 kubectl 範例。

有關處理更複雜的憑證設定的更多資訊,請參閱指定 CA 憑證。

有關可用的 kubeconfig 選項的更多資訊,請參閱上游文件。

API kubectl 範例​

在此範例中,我們將展示如何使用 kubectl 建立專案,然後刪除它。有關其他可用的 Rancher 資源列表,請參閱 API 參考 頁面。

備註

目前,並非所有 Rancher 資源都可透過 Rancher Kubernetes API 使用。

  1. 將您的 KUBECONFIG 環境變數設定為您剛建立的 kubeconfig 檔案:
export KUBECONFIG=$(pwd)/kubeconfig.yaml
  1. 使用 kubectl explain 檢視專案的可用欄位,或資源的複雜子欄位:
kubectl explain projects
kubectl explain projects.spec

並非所有資源都可能有詳細的輸出。

  1. 將以下內容新增到名為 project.yaml 的檔案中:
apiVersion: management.cattle.io/v3
kind: Project
metadata:
# name should be unique across all projects in every cluster
name: p-abc123
# generateName can be used instead of `name` to randomly generate a name.
# generateName: p-
# namespace should match spec.ClusterName.
namespace: local
spec:
# clusterName should match `metadata.Name` of the target cluster.
clusterName: local
description: Example Project
# displayName is the human-readable name and is visible from the UI.
displayName: Example
  1. 建立專案:
kubectl create -f project.yaml
  1. 刪除專案:

刪除專案的方式取決於您建立專案名稱的方式。

A. 如果您在建立專案時使用了 name:

kubectl delete -f project.yaml

B. 如果您使用了 generateName:

將 $PROJECT_NAME 替換為建立專案後 Kubectl 顯示的隨機產生的專案名稱。

kubectl delete project $PROJECT_NAME -n local

指定 CA 憑證​

為了確保您的工具能夠識別 Rancher 的 CA 憑證,大多數設定需要對上述範本進行額外的修改。

  1. 在左上角,點選 ☰ > Global Settings。
  2. 找到並複製 ca-certs 欄位中的值。
  3. 將該值儲存到名為 rancher.crt 的檔案中。
備註

如果您的 Rancher 實例由另一個服務代理,您必須提取該服務正在使用的憑證,並將其新增到 kubeconfig 檔案中,如步驟 5 所示。

  1. 以下指令會將 rancher.crt 轉換為 base64 輸出,去除所有換行符號,並使用憑證更新 kubeconfig 中的叢集,最後刪除 rancher.crt 檔案:
export KUBECONFIG=$PATH_TO_RANCHER_KUBECONFIG
kubectl config set clusters.rancher.certificate-authority-data $(cat rancher.crt | base64 -i - | tr -d '\n')
rm rancher.crt
  1. (選用) 如果您使用系統不信任的自簽憑證,可以在 kubeconfig 中使用 kubectl 設定不安全選項:
危險

此選項不應在生產環境中使用,因為它存在安全風險。

export KUBECONFIG=$PATH_TO_RANCHER_KUBECONFIG
kubectl config set clusters.rancher.insecure-skip-tls-verify true

如果您的 Rancher 實例由另一個服務代理,您必須提取該服務正在使用的憑證,並將其新增到 kubeconfig 檔案中,如上所示。