How to Deploy Container MySQL Database with Persistent Volumes in Oracle Cloud

上一篇文章,提到了如何在Oracle Cloud中创建和访问Kubernetes Cluster。 接下来,这篇文章我们在这个Kubernetes Cluster中创建一个MySQL数据库,并且要使用到容器外的持久化卷来存储数据。 概念介绍 在Kubernetes的存储使用中,至少有两个概念需要了解,一个是Persistent Volumes(PV),另外一个是PersistentVolumeClaims(PVC)。我们可以这样理解,PV就像是真正的资源,就像CPU、内存一样的,只是PV是存储资源;而PVC则是任何一个容器要使用这些资源必须指定的纽带,对于容器来说,只看得到PVC。PVC在定义阶段并不会指明绑定到哪一个PV上,但是在创建之后则会由Kubernetes Controller来在有效的PV中寻找合适的绑定对象,一旦绑定,PV和PVC就形成了一对一的关系。从而,容器->PVC-PV,这样就完成了在容器中使用存储的目的。 前面说,PVC在创建之后会由Controller在有效的PV中寻找合适的绑定对象,实际上也可以在需要的时候自动创建PV然后自动绑定,这被称为Dynamic Volume Provisioning,要实现这一点,需要在Kubernetes中先定义StorageClass。StorageClass中定义了存储提供者(provisioner)还有重分配策略(reclaimPolicy)等,而provisioner实际上就是各种Kubernetes支持的存储类型,分别由各个存储厂家自己制定的,以volume plugin的方式加入到Kubernetes中,比如三大云厂商都提供了自己的存储,微软提供了Azure File和Azure Disk,AWS提供了AWS EBS,Google提供了GCE PD,另外还有其它各种存储类型,比如Ceph,Openstack Cinder,Glusterfs,ScaleIO,vSphere都有相应的provisioner。 同样Oracle Cloud也提供了自己的provisioner,并且在OKE中已经预先创建好了默认的StorageClass。 $ kubectl get StorageClass NAME PROVISIONER AGE oci (default) oracle.com/oci…

Continue ReadingHow to Deploy Container MySQL Database with Persistent Volumes in Oracle Cloud

How to Create and Access Container Cluster (Container Engine for Kubernetes) in Oracle Cloud

本文描述如何在Oracle Cloud中创建并访问容器服务。为了简单,所有的操作都是针对root compartment。 创建允许容器运行的Policy 这一步是必须的,否则不允许创建容器集群。 官方文档链接 左上角的产品菜单中:Governance and Administration -> Identity -> Policies 点击“Create Policy”之后,按照下图的样式创建Policy。 创建容器集群 官方文档链接 左上角的产品菜单中:Solutions and Platform -> Developer Services -> Container Cluster(OKE) 点击“Create Cluster”之后,页面中的元素较多,以下截图只是上半部分。 虽然元素较多,但是在测试阶段可以几乎完全使用默认值。因此直接点“Create”就好。 在容器集群中的Worker…

Continue ReadingHow to Create and Access Container Cluster (Container Engine for Kubernetes) in Oracle Cloud

How to Connect SQL Developer to Oracle Autonomous Transaction Processing (ATP)

Autonomous Transaction Processing简称为ATP,是Oracle自治数据库在云上的一种表现形式,另外一种是Autonomous Data Warehouse,简称ADW。目前这两种Oracle数据库的云服务都在最新发布的Always Free Services中,也就是只需要在Oracle Cloud网站中注册一个免费用户,就可以永久免费使用一定规格的这两种服务。 实际上Oracle云的Always Free Services中包含的不仅仅是数据库,还提供了计算资源、存储资源和网络资源。使用这一整套永久免费的云服务,搭建一套完整的企业应用是OK的,完全可以用于研发环境、测试环境,甚至是最初的产品环境。 那么具体到永久免费的数据库云服务,我们可以使用到的规格是: 1. 可以最多创建两个数据库环境,只有数据库,并不能接触到数据库在运行的主机,因为实际上只是两个PDB; 2. 每个PDB可以使用到最多1个OCPU,8GB内存,20GB存储容量; 3. 有一个额外的限制,最大的同时运行会话数不能超过20. 具体的规格描述可以参看官方文档:https://docs.cloud.oracle.com/iaas/Content/FreeTier/resourceref.htm 好了,假设我们已经创建好了一个ATP数据库。那么首先要解决的是如何连接到这个数据库中,说Oracle是全球对于数据库安全最看重的公司其实不为过,连接Oracle ATP数据库(或者ADW数据库也一样)并没有像其它云中的数据库那么简单,只要开一个防火墙端口,给一个连接串就能连接上了。 实际上用Oracle SQL Developer连接原本是最简单的,但是会有一些错误要解决。 下载最新的Oracle SQL Developer 19.2.1 在Oracle Cloud管理后台下载连接ATP需要的wallet压缩文件。Oracle…

Continue ReadingHow to Connect SQL Developer to Oracle Autonomous Transaction Processing (ATP)