专栏首页数据和云如何在ORACLE CLOUD中创建和访问容器集群丨内附官方文档链接

如何在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中的容器集群前续需要的步骤较多,但是整体上而言还是比较顺畅的体验。

本文分享自微信公众号 - 数据和云(OraNews)

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2019-10-21

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • Spring Data JPA 必须掌握的 20+ 个查询关键字

    今天闲的无聊看 Spring Data JPA 官方文档的时候,发现并没有完整的 Jpa 关键字语义翻译。所以今天写了一篇中文文档,如果有错误,望大家轻喷。

    一个优秀的废人
  • 一日一技:使用 Locust对网络接口进行压力测试

    最近,有同学反应我的博客[1]访问速度有点慢,那么我如何直观地知道我博客的访问速度呢?

    青南
  • Nestjs middleware 全局使用问题

    经过几个小时的折腾均没有结果,于是乎我找到nestjs底层express官方文档:

    stormKid
  • RabbitMQ和Kafka到底怎么选?

    开源社区有好多优秀的队列中间件,比如RabbitMQ和Kafka,每个队列都貌似有其特性,在进行工程选择时,往往眼花缭乱,不知所措。对于RabbitMQ和Kaf...

    烂猪皮
  • 团队技术文档构建利器vuepress上手实践

    最近在尝试一些项目技术文档搭建的工具,看到网上很多人推荐 gitbook,使用后总体感觉良好。无意中发现一款 Vue 驱动的静态站点生成工具 vuepress,...

    CS逍遥剑仙
  • 一日一技:使用Pymongo实现更新并返回数据

    我有100篇故事,放在 MongoDB 里面。我做了一个 web 接口,每次请求返回一篇故事。希望能够实现:

    青南
  • 复杂变量测试php7.1.20可能存在的漏洞

    近期有小伙伴问了我一道题,然后自己发掘到了一些关于 PHP 复杂变量不太被关注的问题。

    随心助手
  • 5 分钟学会写一个自己的 Prometheus Exporter

    去年底我写了一个阿里云云监控的 Prometheus Exporter, 后续迭代的过程中有一些经验总结, 这篇文章就将它们串联起来做一个汇总, 讲讲为什么要写...

    iMike
  • C# 8 的模式匹配

    更多内容请查看官方文档:https://docs.microsoft.com/zh-cn/dotnet/csharp/whats-new/csharp-8#mo...

    solenovex
  • 一种 Laravel 中简单设置多态关系模型别名的方式

    作为 Laravel 的重度使用者肯定都对多态关系不陌生,以官方文档为例,文章有标签,视频有标签,那么文章和视频这些模型与标签模型的关系就是多态多对多(Many...

    overtrue

扫码关注云+社区

领取腾讯云代金券