如何在ORACLE CLOUD中創建和訪問容器集群丨內附官方文檔鏈接

原文:https://www.modb.pro/db/7450

導讀:本文描述如何在Oracle Cloud中創建並訪問容器服務。為了簡單,所有的操作都是針對root隔離區。


創建允許容器運行的政策官方文檔鏈接

這一步是必須的,否則可以增加容器容器。

官方文檔鏈接:https://docs.cloud.oracle.com/iaas/Content/ContEng/Concepts/contengpolicyconfig.htm#PolicyPrerequisitesService(複製鏈接至瀏覽器,即可查看)

左上角的產品菜單中:Governance and Administration -> Identity -> Policies。點擊“Create Policy”之後,按照下圖的樣式創建Policy。


如何在ORACLE CLOUD中創建和訪問容器集群丨內附官方文檔鏈接



創建容器集群

官方文檔鏈接:

https://docs.cloud.oracle.com/iaas/Content/ContEng/Tasks/contengcreatingclusterusingoke.htm (複製至瀏覽器,即可查看)

左上角的產品菜單中:Solutions and Platform -> Developer Services -> Container Cluster(OKE)

如何在ORACLE CLOUD中創建和訪問容器集群丨內附官方文檔鏈接


點擊“Create Cluster”之後,頁面中的元素較多,以下截圖只是上半部分。

如何在ORACLE CLOUD中創建和訪問容器集群丨內附官方文檔鏈接


雖然元素較多,但是在測試階段可以幾乎完全使用默認值。因此直接點“Create”就好。

在容器集群中的Worker Node可以不用ssh登錄(我們在後續只需要通過oci和kubectl命令來操作集群就可以),所以頁面中的PUBLIC SSH KEY確實是不用輸入的,而默認的Private網絡類型也無需修改。


創建容器集群需要花數分鐘時間,創建成功以後,在集群頁面就可以看到新創建的集群的詳細信息。在我的測試裡,指定了Node Pool裡只有2臺Node,不是默認的3臺,因此在列表中只顯示了兩臺機器。

如何在ORACLE CLOUD中創建和訪問容器集群丨內附官方文檔鏈接


創建KUBECONFIG文件

官方文檔鏈接:

https://docs.cloud.oracle.com/iaas/Content/ContEng/Tasks/contengdownloadkubeconfigfile.htm (複製至瀏覽器,即可查看)

這一步比較繁瑣。分為5個小步驟,不過官方文檔中的描述很詳盡。

如何在ORACLE CLOUD中創建和訪問容器集群丨內附官方文檔鏈接


第一步:標準的生成訪問密鑰的過程

mkdir ~/.oci

openssl genrsa -out ~/.oci/oci_api_key.pem 2048

chmod go-rwx ~/.oci/oci_api_key.pem

openssl rsa -pubout -in ~/.oci/oci_api_key.pem -out ~/.oci/oci_api_key_public.pem

cat ~/.oci/oci_api_key_public.pem | pbcopy

第二步:在管理界面右上角的用戶logo那裡選擇User Settings

如何在ORACLE CLOUD中創建和訪問容器集群丨內附官方文檔鏈接


點擊“Add Public Key”,直接將上一步生成的內容粘貼到輸入框中,點“Add”。

如何在ORACLE CLOUD中創建和訪問容器集群丨內附官方文檔鏈接


第三步:安裝配置Oracle Cloud Infrastructure CLIOCI CLI是一個命令行工具,就像Google Cloud也會提供gcloud命令行工具一樣,這個工具用來在命令行裡直接操縱Cloud中的各種資源。因為我們要用oci的create-kubeconfig命令來創建kubecongfig文件,所以需要這一步。

bash -c "$(curl -L https://raw.githubusercontent.com/oracle/oci-

cli/master/scripts/install/install.sh)"

中間有一些需要輸入的地方,也可以接受默認值一路回車。

運行完畢以後,顯示successful。

-- Installation successful.

-- Run the CLI with /usr/local/bin/oci --help

安裝完畢以後,必須先進行配置,才可以使用。


oci setup config

這一步配置要在Oracle Cloud的後臺各個地方找到需要的信息(Tenancy UCID,User UCID,Region name),並且將值填入才可以。這裡不一一贅述,在 官方文檔中都有相應描述。

Enter a location for your config [/Users/Kamus/.oci/config]:

Enter a user OCID: "your user ocid here"

Enter a tenancy OCID: "your tenancy ocid here"

Enter a region (e.g. ap-mumbai-1, ap-seoul-1, ap-sydney-1, ap-tokyo-1, ca-toronto-1, eu-frankfurt-1, eu-zurich-1, sa-saopaulo-1, uk-london-1, us-ashburn-1, us-gov-ashburn-1, us-gov-chicago-1, us-gov-phoenix-1, us-langley-1, us-luke-1, us-phoenix-1): ap-tokyo-1

Do you want to generate a new RSA key pair? (If you decline you will be asked to supply the path to an existing key.) [Y/n]: n

Enter the location of your private key file: /Users/Kamus/.oci/oci_api_key.pem

Fingerprint: 5d:53:af:a8:d2:6b:4d:2f:20:24:b3:5b:c2:eb:89:86

Config written to /Users/Kamus/.oci/config

在最後一步問是否需要生成新的RSA key pair時選擇n,因為我們在上面已經生成過了,這裡只需要將本地的私鑰地址填入即可。

這一步完畢以後,我們已經可以使用oci操縱Oracle Cloud中的資源了,比如我們列出在上面創建容器集群時自動創建的兩個計算資源。

$ oci compute instance list -c “your-compartment-id”|grep "display-name"

"display-name": "oke-cqwkmbzgbrd-nztqytbgjst-sxqablc2qgq-0",

"display-name": "oke-cqwkmbzgbrd-nztqytbgjst-sxqablc2qgq-1",

oci命令行工具的完整文檔參看這裡:https://docs.cloud.oracle.com/iaas/tools/oci-cli/latest/oci_cli_docs/index.html

(複製至瀏覽器,即可查看)

第四步:生成kubeconfig

oci工具只是操作Oracle Cloud中的基礎資源,想要管理容器,還是要使用kubectl。為了讓kubectl可以知道操縱哪裡的容器集群,需要生成kubeconfig。



mkdir -p $HOME/.kube
oci ce cluster create-kubeconfig --cluster-id “your-cluster-id” --file /Users/Kamus/.kube/config.oci --region ap-tokyo-1 --token-version 2.0.0
export KUBECONFIG=$HOME/.kube/config.oci


上述命令中的“your-cluster-id”可以在容器集群的信息頁面中找到。

如何在ORACLE CLOUD中創建和訪問容器集群丨內附官方文檔鏈接


至此,我們已經可以使用kubectl管理Oracle Cloud中的容器集群了。比如顯示默認運行的所有pods。(當前,前提是已經安裝了kubectl,如果還未安裝,請參閱Kubernetes的官方安裝文檔:https://kubernetes.io/docs/tasks/tools/install-kubectl/ 複製至瀏覽器即可查看)



$ kubectl get pods --all-namespaces
NAMESPACE NAME READY STATUS RESTARTS AGE
kube-system kube-dns-7bcbdbdbcb-bdfdx 3/3 Running 0 65m
kube-system kube-dns-7bcbdbdbcb-w8jm7 3/3 Running 0 60m
kube-system kube-dns-autoscaler-7c6dd95548-9r9wv 1/1 Running 0 65m
kube-system kube-flannel-ds-f2s6x 1/1 Running 1 60m
kube-system kube-flannel-ds-jzrjp 1/1 Running 0 61m
kube-system kube-proxy-btccr 1/1 Running 0 60m
kube-system kube-proxy-llh74 1/1 Running 0 61m
kube-system kubernetes-dashboard-74f74898c9-q9zpw 1/1 Running 0 65m
kube-system proxymux-client-10.0.10.2 1/1 Running 0 60m
kube-system proxymux-client-10.0.10.3 1/1 Running 0 61m
kube-system tiller-deploy-6f8654fd88-xc229 1/1 Running 0 65m


總結:雖然通過kubectl管理Oracle Cloud中的容器集群前續需要的步驟較多,但是整體上而言還是比較順暢的體驗。

讀完本文,覺得不夠?2019 數據技術嘉年華來啦!現場大咖雲集,與你共暢數據的魅力。現在加入,盡享超低票價優惠:

如何在ORACLE CLOUD中創建和訪問容器集群丨內附官方文檔鏈接

掃碼立即購票!


分享到:


相關文章: