附註:
- 此教學課程需要存取 Oracle Cloud。若要註冊免費帳戶,請參閱 Oracle Cloud Infrastructure Free Tier 入門。
- 它使用 Oracle Cloud Infrastructure 證明資料、租用戶及區間的範例值。完成實驗室時,請將這些值取代為您雲端環境特定的值。
使用本機存取連線至 Oracle Cloud Infrastructure Kubernetes Engine 叢集
簡介
本教學課程將引導您使用本機存取連線至 Oracle Cloud Infrastructure Kubernetes Engine (OCI Kubernetes 引擎或 OKE) 叢集。本教學課程結束時,您可以設定讓本機機器安全且有效率地與 OKE 叢集互動。此連線方法對於管理叢集資源、部署應用程式以及從本機環境執行的疑難排解至關重要。無論您是初學者還是經驗豐富的 Kubernetes,此逐步方法都可確保順暢且直接的設定。
查看 Kubernetes 叢集的網路部分時,您有不同的 Kubernetes 網路架構可用於部署。如需詳細資訊,請參閱網路資源組態範例。
有時候,您想要使用專用 IP 位址部署 API 端點,而且當您這麼做時,無法使用 OCI Cloud Shell 應用程式管理 Kubernetes 叢集,也無法從連線至網際網路的其他機器管理。您必須選取本機存取,但在能夠與本機存取連線之前,我們必須先設定一個可以作為堡壘主機的執行處理。
目標
- 使用本機存取連線至 Oracle Cloud Infrastructure Kubernetes Engine 叢集。
作業 1:驗證 Kubernetes 叢集
確定您在 OCI OKE 上已部署 Kubernetes 叢集。
-
若要在 OKE 上部署 Kubernetes 叢集,請使用下列其中一種方法:
-
作業 1:建立新的 Kubernetes 叢集並驗證元件:使用快速建立模式在 OKE 上部署 Kubernetes 叢集。
-
作業 1:使用 OKE 部署 Kubernetes 叢集:使用自訂建立模式在 OKE 上部署 Kubernetes 叢集。
-
使用 Terraform 在不同 OCI 區域之間使用 OKE 部署多個 Kubernetes 叢集,並使用 RPC 建立完整網狀組織網路:使用 Terraform 在 OKE 的多個區域部署多個 Kubernetes 叢集。
-
使用 Oracle Cloud Infrastructure Kubernetes Engine 使用 Terraform 部署 Kubernetes 叢集:使用 Terraform 在 OKE 上部署單一 Kubernetes 叢集。
-
-
登入 OCI 主控台,瀏覽至開發人員服務、Kubernetes 叢集 (OKE) ,然後按一下叢集。
-
按一下存取叢集。
-
選取本機存取。複製建立並正確設定堡壘主機之後,所需的下列命令。
作業 2:建立作為堡壘主機的新 Linux 執行處理
在這項任務中,我們將在公用子網路中部署堡壘主機執行處理,但使用 OCI 堡壘主機服務和階段作業 (稍後在此教學課程中) 時,最好是在專用子網路上部署堡壘主機執行處理。在本教程中,我們沒有這樣做,因為我們想要展示靈活性和各種不同的選項。
工作 2.1:建立含有傳入和傳出規則的 bastion-private-sec-list
安全清單
決定新堡壘主機執行處理將位於 10.0.5.0/24
的新子網路。我們需要這樣才能正確建立安全清單。
-
移至 OCI 主控台,瀏覽至網路、虛擬雲端網路,然後選取部署 Kubernetes 叢集的 VCN。
- 按一下安全清單。
- 按一下建立安全清單。
- 輸入安全清單名稱。
- 按一下 + 其他傳入規則。
-
輸入下列資訊以建立傳入規則 1 。
- 來源類型:輸入 CIDR 。
- 來源 CIDR:輸入作為堡壘主機執行處理子網路的來源 (
10.0.5.0/24
)。 - IP 協定:輸入 TCP 。
- 目的地連接埠範圍:輸入 22 。
- 按一下 + 其他傳入規則。
-
輸入下列資訊以建立傳入規則 2 。
- 來源類型:輸入 CIDR 。
- 來源 CIDR:輸入作為堡壘主機執行處理子網路的來源 (
10.0.5.0/24
)。 - IP 協定:輸入 ICMP 。
- 向下捲動。
-
按一下 + 其他輸出規則。
-
輸入下列資訊以建立傳出規則 1 。
- 目標類型:輸入 CIDR 。
- 目的地 CIDR:輸入來源作為所有項目 (
0.0.0.0/0
)。 - IP 協定:輸入所有協定。
- 按一下建立安全清單。
-
請注意,新的安全清單已經建立,請按一下安全清單並確認規則。
- 按一下傳入規則。
- 請注意,規則存在。
- 按一下傳出規則。
- 請注意,規則存在。
作業 2.2:建立含有傳入和傳出規則的 bastion-public-sec-list
安全性
-
按一下建立安全清單。
- 輸入安全清單名稱。
- 按一下 + 其他傳入規則。
-
輸入下列傳入規則 1 資訊。
- 來源類型:輸入 CIDR 。
- 來源 CIDR:輸入作為堡壘主機執行處理子網路的來源 (
10.0.5.0/24
)。 - IP 協定:輸入 ICMP 。
- 按一下 + 其他傳入規則。
-
輸入下列傳入規則 2 資訊。
- 來源類型:輸入 CIDR 。
- 來源 CIDR:輸入來源作為所有項目 (
0.0.0.0/0
)。 - IP 協定:輸入 TCP 。
- 目的地連接埠範圍:輸入 22 。
- 按一下 + 其他傳入規則。
-
輸入下列傳入規則 3 資訊。
- 來源類型:輸入 CIDR 。
- 來源 CIDR:輸入來源作為所有項目 (
0.0.0.0/0
)。 - IP 協定:輸入 ICMP 。
- 按一下 + 其他輸出規則。
-
輸入下列傳出規則 1 資訊。
- 目標類型:輸入 CIDR 。
- 目的地 CIDR:輸入來源作為所有項目 (
0.0.0.0/0
)。 - IP 協定:輸入所有協定。
- 按一下建立安全清單。
-
請注意,新的安全清單已經建立,請按一下安全清單並確認規則。
- 按一下傳入規則。
- 請注意,規則存在。
- 按一下傳出規則。
- 請注意,規則存在。
作業 2.3:使用網際網路閘道建立 bastion-route-table
,以新增至供網際網路存取的堡壘主機執行處理
注意:請確定您已在 VCN 中建立網際網路閘道。
-
前往虛擬雲端網路詳細資訊頁面。
- 按一下路由表。
- 按一下建立路由表。
- 輸入名稱。
- 按一下 + 其他路由規則。
-
在規則區段中,輸入以下資訊。
- 目標類型:選取網際網路閘道。
- 目的地 CIDR 區塊:輸入
0.0.0.0/0
。 - 目標網際網路閘道:選取現有的網際網路閘道。
- 按一下建立。
-
請注意,新的路由表已經建立,請按一下路由表並檢查規則。
- 請注意,規則存在。
- 按一下 VCN 以返回 VCN 頁面。
作業 2.4:建立堡壘主機執行處理的區域公用子網路 (bastion-subnet
)
-
按一下子網路。
-
按一下建立子網路,然後輸入下列資訊。
- 輸入名稱。
- 子網路類型:選取區域。
- IPv4 CIDR 區塊:輸入
10.0.5.0/24
。 - 向下捲動。
- 路由表:選取在「工作 2.3」中建立的路由表。
- 子網路存取:選取公用子網路。
- 向下捲動。
- DHCP 選項區間: 選取預設的「DHCP 選項」。
- 安全清單:選取在作業 2.2 中為公用子網路建立的安全清單。
- 按一下建立子網路。
-
請注意,已經建立新的子網路。
作業 2.5:新增 bastion-private-sec-list
至工作專用子網路,以依堡壘主機執行處理存取工作節點
-
前往虛擬雲端網路詳細資訊頁面。
- 按一下子網路。
- 按一下您 Kubernetes 工作節點連線的子網路。
- 按一下安全清單。
- 按一下新增安全清單。
- 安全清單:選取在作業 2.1 中建立之專用子網路的安全清單。
- 按一下新增安全清單。
-
請注意,安全清單會新增至 (Kubernetes 工作節點) 子網路。
作業 2.6:建立 OCI Compute 執行處理
建立堡壘主機執行處理。
-
移至 OCI 主控台,瀏覽至運算、執行處理,然後按一下建立執行處理。
- 輸入名稱。
- 向下捲動。
-
向下捲動。
- 選取用於在作業 2.4 中建立子網路的 VCN 。
- 選取在任務 2.4 中建立的子網路。
-
向下捲動。
注意:在此範例中,我們使用現有的公用金鑰。您也可以選擇產生金鑰組,但如果這麼做,請確定儲存金鑰組,因為稍後將需要。若要建立具有產生金鑰組的執行處理,請參閱使用 Oracle Cloud Infrastructure 建立您的第一個 Linux 運算執行處理。
-
在建立運算執行處理頁面中,輸入下列資訊。
- 選取上傳公用金鑰檔案。
- 按一下瀏覽。
- 請確定已選取現有的公開金鑰。
- 向下捲動。
-
按一下建立。
-
請注意,執行處理會顯示 PROVISIONING 狀態。
作業 2.7:取得堡壘主機執行處理 (BastionHost
) 的公用 IP 位址給 SSH
-
前往執行處理詳細資訊頁面。
- 完整部署執行處理時,將會顯示 RUNNING 狀態。
- 複製公用 IP 位址。
工作 2.8:登入堡壘主機
-
開啟終端機或其他可用來設定 SSH 連線的應用程式,然後執行下列命令。
- 將儲存私密金鑰和公開金鑰的目錄變更為該目錄。
- 請執行下列命令,使用私密金鑰與 SSH 連線至執行處理公用 IP 位址。
- 輸入是以繼續。
- 請注意,您現在已經登入執行處理。
- 執行下列命令以取得執行處理的專用 IP 位址。
- 請注意,執行處理的 IP 位址為
10.0.5.62/24
,位於10.0.5.0/24
的子網路中。
作業 3:建立堡壘主機階段作業
我們可以使用堡壘主機執行處理作為獨立主機,但也可以使用堡壘主機服務或堡壘主機階段作業。若要這麼做,我們必須安裝堡壘主機 Plugin 並建立堡壘主機階段作業。
堡壘主機階段作業有哪些優點?
當您在專用子網路內部署執行處理時,並無法從網際網路直接存取該執行處理。不過,您可以藉由設定堡壘主機並起始堡壘主機階段作業,讓專用執行處理可供存取。這可讓執行處理作為管理 OCI 環境內其他資源的步進石。
作業 3.1:在執行處理上安裝堡壘主機 Plugin
-
移至在 Task 2.6 中建立的執行處理。
- 按一下 Oracle Cloud 代理程式。
- 向下捲動。
- 將堡壘主機設為已啟用。
- 服務會設為已停止。這會在幾分鐘後變更。
注意:
- 若要部署堡壘主機 Plugin,執行處理必須能夠透過 NAT 閘道或網際網路閘道存取網際網路,因為此 Plugin 是從網際網路下載的。當 Plugin 狀態維持在已停止狀態時,請檢查您的網際網路連線。
- 您也可以手動安裝 Oracle Cloud 代理程式軟體。如需詳細資訊,請參閱安裝 Oracle Cloud 代理程式軟體。
-
安裝 Oracle Cloud 代理程式軟體後,狀態將會變更為執行中。
作業 3.2:建立堡壘主機階段作業
-
瀏覽識別、安全,然後按一下堡壘主機。
- 按一下建立堡壘主機。
-
請輸入下列資訊。
- 堡壘主機名稱:輸入名稱。
- 定位虛擬雲端網路: 選取堡壘主機執行處理和 Kubernetes 叢集所在的 VCN。
- 目標子網路:選取堡壘主機執行處理所在的子網路。
- CIDR 區塊允許清單: 選取允許清單。若要允許所有項目,請使用
0.0.0.0/0
。 - 按一下建立堡壘主機。
-
請注意,堡壘主機狀態為建立中。
- 堡壘主機狀態在幾分鐘後將會變更為作用中。
- 按一下堡壘主機。
-
按一下建立階段作業 (Create session) 。
-
請輸入下列資訊。
- 階段作業類型:選取受管理 SSH 階段作業。
- 階段作業名稱:輸入名稱。
- 使用者名稱:輸入堡壘主機執行處理的使用者名稱。
- 運算執行處理: 選取在作業 2.6 中建立的堡壘主機執行處理。
- 新增 SSH 金鑰:選取選擇 SSH 金鑰檔。
- 請按一下瀏覽。
- 確定選取在作業 2.6 中建立之堡壘主機執行處理的公開金鑰。
- 按一下建立階段作業 (Create session) 。
注意:在此範例中,由於簡潔的理由,我們使用與堡壘主機執行處理相同的 SSH 金鑰組。建議您建立或使用與堡壘主機執行處理不同的金鑰組。
作業 3.3:取得堡壘主機階段作業的 SSH 命令
-
前往堡壘主機詳細資訊頁面。
- 請注意,堡壘主機階段作業已建立。
- 按一下三個點功能表。
- 選取複製 SSH 命令。
作業 3.4:登入堡壘主機
- 開啟終端機或其他可用來設定 SSH 連線的應用程式,然後執行下列命令。
- 在終端機中執行下列複製的 SSH 命令。
- 輸入是以繼續進行堡壘主機 SSH 階段作業。
- 輸入是以繼續執行處理 SSH 階段作業。
- 請注意,您現在已透過堡壘主機階段作業登入執行處理。
注意:這是連線至顯示的堡壘主機執行處理的不同方式。現在我們正透過堡壘主機階段作業連線至堡壘主機執行處理,稍早之前我們與 SSH 直接連線至堡壘主機執行處理。
作業 4:設定 OCI 命令行介面 (CLI)
我們已成功設定堡壘主機執行處理、堡壘主機以及堡壘主機階段作業,而且已驗證連線,現在需要設定 OCI CLI,才能在 OCI 環境內執行 CRUD (建立、讀取、更新及刪除) 作業。
-
執行下列指令,以更新已經安裝的軟體。
[opc@oke-bastion-instanc ~]$ sudo dnf update
-
輸入 y 以確認更新。
-
請注意,更新為完成!。
-
執行下列命令以安裝 Oracle Developer 版本。
[opc@oke-bastion-instanc ~]$ sudo dnf -y install oraclelinux-developer-release-el8
-
在此範例中,已經安裝 Oracle Developer Release。如果不是您的情況,請進行安裝。
-
執行下列命令以安裝 OCI CLI。
[opc@oke-bastion-instanc ~]$ sudo dnf install python36-oci-cli
-
輸入 y 以確認安裝。
-
-
請注意,安裝完整!
-
請執行下列命令來驗證已安裝的 OCI CLI 版本。
[opc@oke-bastion-instanc ~]$ oci -v
-
請注意,OCI CLI 版本為 3.49.0 。
-
作業 5:設定 OCI CLI
我們需要新增一些組態,以確保 OCI CLI 能夠在您的 OCI 租用戶上進行認證,以便您執行 CRUD 作業。
-
執行下列命令,在您的本位目錄資料夾中建立新的隱藏目錄。
[opc@oke-bastion-instanc ~]$ mkdir ~/.oci/
-
執行下列命令,將目錄變更為您剛建立的目錄。
[opc@oke-bastion-instanc ~]$ cd ~/.oci/
-
執行下列命令以產生新的金鑰組 (公用和私密金鑰)。在本教學課程中,我們未使用任何密碼,因此我們將在密碼詞組問題中輸入 N/A 。
[opc@oke-bastion-instanc .oci]$ oci setup keys
-
執行下列命令以確認您的金鑰組是否已順利產生。
[opc@oke-bastion-instanc .oci]$ ls -l
-
執行下列命令以取得公開金鑰的內容。請確定您複製,因為稍後將需要。
[opc@oke-bastion-instanc .oci]$ cat ~/.oci/oci_api_key_public.pem
- 移至 OCI 主控台,按一下設定檔圖示。
- 按一下我的設定檔。
-
向下捲動。
- 按一下 API 金鑰。
- 按一下新增 API 金鑰。
- 選取貼上公開金鑰。
- 貼上從堡壘主機執行處理收集的公開金鑰。
- 複製配置檔案。
- 按一下關閉。
-
這是複製之組態的輸出。您必須將
<path to your private keyfile>
值變更為剛才產生的值。[DEFAULT] user=ocid1.user.oc1..aaaaaaaavgrv6wsnnzhtwpjmyqtdqbq7kacfdfooz5uta3ludvfuwibe23aq fingerprint=a7:ff:fb:20:18:75:31:7d:b0:7c:04:8f:0c:cb:98:23 tenancy=ocid1.tenancy.oc1..aaaaaaaabh2affulc4dt4tqs7lbojyhqi6hzn5mjllxlnuqnletufsofoyvq region=eu-frankfurt-1 key_file=<path to your private keyfile> # TODO
-
執行下列命令以建立 OCI CLI
config
檔案。[opc@oke-bastion-instanc .oci]$ nano ~/.oci/config
- 複製
config
檔案中 OCI 主控台所提供的組態內容。 - 變更私密金鑰檔案位置。
[DEFAULT] user=ocid1.user.oc1..aaaaaaaavgrv6wsnnzhtwpjmyqtdqbq7kacfdfooz5uta3ludvfuwibe23aq fingerprint=a7:ff:fb:20:18:75:31:7d:b0:7c:04:8f:0c:cb:98:23 tenancy=ocid1.tenancy.oc1..aaaaaaaabh2affulc4dt4tqs7lbojyhqi6hzn5mjllxlnuqnletufsofoyvq region=eu-frankfurt-1 key_file=~/.oci/oci_api_key.pem
- 複製
-
確定儲存並結束配置檔案。
-
執行下列命令以確定已建立
config
檔案。[opc@oke-bastion-instanc .oci]$ ls -l
注意:如需詳細資訊,請參閱 Oracle Cloud Infrastructure CLI Command Reference 。
-
執行下列命令以複查您租用戶中設定的所有資源類型。
[opc@oke-bastion-instanc .oci]$ oci search resource-type list --all --output table --query "data [*].{Name:name}"
-
請注意,顯示
config
檔案權限的警告太開啟,我們將修正此問題。 -
請注意租用戶中設定之所有資源類型的輸出。
-
-
執行下列指令來修正
config
檔案的檔案權限。[opc@oke-bastion-instanc .oci]$ oci setup repair-file-permissions --file /home/opc/.oci/config
-
執行下列命令以擷取您租用戶訂閱的所有區域清單。
[opc@oke-bastion-instanc .oci]$ oci iam region list
-
請注意租用戶訂閱之所有區域的輸出。
-
執行下列命令以列出租用戶中的所有已設定區間。
[opc@oke-bastion-instanc .oci]$ oci iam compartment list
-
請注意租用戶所有區間的輸出。
-
作業 6:在互動式模式下使用 OCI CLI
-
您也可以在互動式模式中使用 OCI CLI。如此一來,OCI CLI 就會提供您命令中的命令和下一個關鍵字,供您最終取得所需的完整命令。如需詳細資訊,請參閱使用互動式模式。
- 執行下列命令,以互動模式啟動 OCI CLI。
[opc@oke-bastion-instanc .oci]$ oci -i
- 您可以看到 OCI CLI 互動式模式提示。
- 按 Tab 可自動完成指令,按 Enter 可執行指令,按 Ctrl + D 則可結束互動模式。
- 輸入 Tab 可取得第一級的指令。
- 請注意可用的第一層指令。
-
輸入
ia
,然後按 Tab 鍵來顯示可用的指令選項。 -
輸入
iam compartment
,然後按 Tab 鍵來顯示可用的指令選項。 -
按 Tab 鍵可自動完成文字區間。因此,您現在可以使用
iam compartment
命令。 -
按 Tab 鍵可顯示
iam compartment
指令的下一個可用選項。- 執行
iam compartment list
命令。 - 請注意租用戶所有區間的輸出。
- 執行
作業 7:使用 OCI CLI 存取 Kubernetes 叢集
-
請執行下列命令來檢查 OCI CLI 版本。
oci -v
-
存取 Kubernetes 叢集。
-
建立包含
kubeconfig
檔案的目錄。mkdir -p $HOME/.kube
-
若要透過 VCN 原生公用端點存取您叢集的
kubeconfig
檔案,請複製下列命令。oci ce cluster create-kubeconfig --cluster-id ocid1.cluster.oc1.eu-frankfurt-1.aaaaaaaagwiamspaz7h4pxxxxxxxxxxxxxxxj75gd7chc27su6o56kq --file $HOME/.kube/config --region eu-frankfurt-1 --token-version 2.0.0 --kube-endpoint PUBLIC_ENDPOINT
-
執行下列命令,將您的
KUBECONFIG
環境變數設為此叢集的檔案。export KUBECONFIG=$HOME/.kube/config
-
執行下列命令以下載最新的 Kubernetes 版本。
[opc@oke-bastion-instanc ~]$ curl -LO "https://storage.googleapis.com/kubernetes-release/release/$(curl -s https://storage.googleapis.com/kubernetes-release/release/stable.txt)/bin/linux/amd64/kubectl"
-
執行下列命令,讓
kubectl
應用程式可執行。[opc@oke-bastion-instanc ~]$ chmod +x ./kubectl
-
將
kubectl
應用程式移至作用中的$PATH
變數位置,以便從任何位置執行kubectl
命令。[opc@oke-bastion-instanc ~]$ sudo mv ./kubectl /usr/local/bin/kubectl
-
執行下列命令以取得您的 Kubernetes 叢集資訊。
[opc@oke-bastion-instanc ~]$ kubectl cluster-info
-
執行下列命令以取得 Kubernetes 從屬端和伺服器版本。
[opc@oke-bastion-instanc ~]$ kubectl version
-
執行下列命令以取得屬於 Kubernetes 叢集的所有工作節點。
[opc@oke-bastion-instanc ~]$ kubectl get nodes
-
接下來的步驟
使用本機存取連線至您的 OKE 叢集,可讓您輕鬆從本機環境管理叢集資源並與其互動。依照本教學課程中所述的作業,您已設定安全連線,現在可以在 OKE 叢集上部署、監督及維護應用程式。此設定可讓您處理管理任務、進行執行疑難排解,以及有效率地最佳化工作流程。請將這些組態保留方便以供日後參考,並隨時探索進一步的自訂選項以符合您的特定需求。
認可
- 作者 - Iwan Hoogendoorn (OCI 網路專家)
其他學習資源
探索 docs.oracle.com/learn 上的其他實驗室,或存取 Oracle Learning YouTube 頻道上的更多免費學習內容。此外,請造訪 education.oracle.com/learning-explorer 以成為 Oracle Learning Explorer。
如需產品文件,請造訪 Oracle Help Center 。
Connect to an Oracle Cloud Infrastructure Kubernetes Engine cluster using Local Access
G18374-01
November 2024