RK-API 快速入門指南
您可以透過 Kubernetes API 存取 Rancher 的資源。本指南幫助您作為 Rancher 使用者開始使用此 API。
- 在左上角,點選 ☰ > Global Settings。
- 找到並複製
server-url欄位中的位址。 - 建立一個沒有範圍的 Rancher API 金鑰。
沒有範圍的 Rancher API 金鑰會授予對使用者可存取的所有資源的無限制存取權限。為防止未經授權的使用,此金鑰應妥善保存並經常輪換。
-
建立一個
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 使用。
- 將您的 KUBECONFIG 環境變數設定為您剛建立的 kubeconfig 檔案:
export KUBECONFIG=$(pwd)/kubeconfig.yaml
- 使用
kubectl explain檢視專案的可用欄位,或資源的複雜子欄位:
kubectl explain projects
kubectl explain projects.spec
並非所有資源都可能有詳細的輸出。
- 將以下內容新增到名為
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
- 建立專案:
kubectl create -f project.yaml
- 刪除專案:
刪除專案的方式取決於您建立專案名稱的方式。
A. 如果您在建立專案時使用了 name:
kubectl delete -f project.yaml
B. 如果您使用了 generateName:
將 $PROJECT_NAME 替換為建立專案後 Kubectl 顯示的隨機產生的專案名稱。
kubectl delete project $PROJECT_NAME -n local
指定 CA 憑證
為了確保您的工具能夠識別 Rancher 的 CA 憑證,大多數設定需要對上述範本進行額外的修改。
- 在左上角,點選 ☰ > Global Settings。
- 找到並複製
ca-certs欄位中的值。 - 將該值儲存到名為
rancher.crt的檔案中。
如果您的 Rancher 實例由另一個服務代理,您必須提取該服務正在使用的憑證,並將其新增到 kubeconfig 檔案中,如步驟 5 所示。
- 以下指令會將
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
- (選用) 如果您使用系統不信任的自簽憑證,可以在 kubeconfig 中使用 kubectl 設定不安全選項:
此選項不應在生產環境中使用,因為它存在安全風險。
export KUBECONFIG=$PATH_TO_RANCHER_KUBECONFIG
kubectl config set clusters.rancher.insecure-skip-tls-verify true
如果您的 Rancher 實例由另一個服務代理,您必須提取該服務正在使用的憑證,並將其新增到 kubeconfig 檔案中,如上所示。