如何在ORACLE CLOUD中创建和访问容器集群丨内附官方文档链接
墨墨导读:本文描述如何在Oracle Cloud中创建并访问容器服务。为了简单,所有的操作都是针对root隔离区。
创建允许容器运行的政策官方文档链接
这一步是必须的,否则可以增加容器容器。
官方文档链接:https://docs.cloud.oracle.com/iaas/Content/ContEng/Concepts/contengpolicyconfig.htm#PolicyPrerequisitesService(复制链接至浏览器,即可查看)
左上角的产品菜单中:Governance and Administration -> Identity -> Policies。点击“Create Policy”之后,按照下图的样式创建Policy。
创建容器集群
官方文档链接:
https://docs.cloud.oracle.com/iaas/Content/ContEng/Tasks/contengcreatingclusterusingoke.htm (复制至浏览器,即可查看)
左上角的产品菜单中:Solutions and Platform -> Developer Services -> Container Cluster(OKE)
点击“Create Cluster”之后,页面中的元素较多,以下截图只是上半部分。
虽然元素较多,但是在测试阶段可以几乎完全使用默认值。因此直接点“Create”就好。
在容器集群中的Worker Node可以不用ssh登录(我们在后续只需要通过oci和kubectl命令来操作集群就可以),所以页面中的PUBLIC SSH KEY确实是不用输入的,而默认的Private网络类型也无需修改。
创建容器集群需要花数分钟时间,创建成功以后,在集群页面就可以看到新创建的集群的详细信息。在我的测试里,指定了Node Pool里只有2台Node,不是默认的3台,因此在列表中只显示了两台机器。
创建KUBECONFIG文件
官方文档链接:
https://docs.cloud.oracle.com/iaas/Content/ContEng/Tasks/contengdownloadkubeconfigfile.htm (复制至浏览器,即可查看)
这一步比较繁琐。分为5个小步骤,不过官方文档中的描述很详尽。
第一步:标准的生成访问密钥的过程
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
点击“Add Public Key”,直接将上一步生成的内容粘贴到输入框中,点“Add”。
第三步:安装配置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”可以在容器集群的信息页面中找到。
至此,我们已经可以使用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 数据技术嘉年华来啦!现场大咖云集,与你共畅数据的魅力。现在加入,尽享超低票价优惠:
出处:墨天轮(https://www.modb.pro/db/7450,复制到网页中打开或者点击“阅读原文”)
扩展阅读
数据和云
ID:OraNews
如有收获,请划至底部,点击“在看”,谢谢!
资源下载
关注公众号:数据和云(OraNews)回复关键字获取
help,30万+下载的完整菜单栏
2019DTCC,数据库大会PPT
2018DTCC , 数据库大会PPT
2018DTC,2018 DTC 大会 PPT
ENMOBK,《Oracle性能优化与诊断案例》
DBALIFE,“DBA 的一天”海报
DBA04,DBA 手记4 电子书
122ARCH,Oracle 12.2体系结构图
2018OOW,Oracle OpenWorld 资料
云和恩墨BethuneX 企业版,集监控、巡检、安全于一身,你的专属数据库实时监控和智能巡检平台,漂亮的不像实力派,你值得拥有!
云和恩墨zData一体机现已发布超融合版本和精简版,支持各种简化场景部署,零数据丢失备份一体机ZDBM也已发布,欢迎关注。
云和恩墨大讲堂 | 一个分享交流的地方
长按,识别二维码,加入万人交流社群
请备注:云和恩墨大讲堂