在本文中,我将解释如何在多节点Kubernetes集群上部署和扩展Oracle Express数据库。 我将使用Maxym Bylenko的Docker容器 。 我指的是Oracle XE 11g的容器,因为在执行以下所述过程时,Oracle XE 12c的容器存在以下未解决的问题 。 我假设读者至少具有Kubernetes概念的基础或中级知识。
首先要做的是创建一个Pod。 我们可以通过YAML文件声明性地执行此操作(以及本文中描述的其他操作):
apiVersion: v1
kind: Pod
metadata:
name: "oradb"
labels:
name: "oradb"
spec:
containers:
- image: "sath89/oracle-xe-11g:latest"
name: "oradb"
ports:
- containerPort: 1521
restartPolicy: Always
成功创建Pod之后,我们需要为其创建服务:
apiVersion: v1
kind: Service
metadata:
name: "oradb"
labels:
app: "oradb"
spec:
ports:
- port: 1521
selector:
app: "oradb"
现在,我们需要创建一个ReplicationController。 它使您可以轻松地创建多个Pod,然后确保总是存在一定数量的Pod:如果Pod崩溃,则Replication Controller会替换它。 这是我们可以声明性地创建一个ReplicationController的方法,指定我们需要两个副本:
apiVersion: v1
kind: ReplicationController
metadata:
name: "oradb"
labels:
app: "oradb"
spec:
replicas: 2
selector:
app: "oradb"
template:
metadata:
labels:
app: "oradb"
spec:
containers:
- image: "sath89/oracle-xe-11g:latest"
name: "oradb"
我们可以通过以下方法检查是否已成功从外壳程序成功创建ReplicationController:
kubectl:
kubectl获取rc
或者,如果在OpenShift Origin中:
oc get rc
NAME DESIRED CURRENT AGE
oradb 2 2 1d
让我们检查一下豆荚:
kubectl get pods
或者,在OpenShift Origin中:
oc get pods NAME READY STATUS RESTARTS AGE oradb 1/1 Running 0 1d oradb-6rs8h 1/1 Running 0 1d oradb-cq2x9 1/1 Running 0 1d
想象一下,现在我们需要将集群从2个Pod扩展到3个。 只需使用kubectl scale命令即可执行此操作:
kubectl scale rc oradb --replicas=3
或oc scale命令:
oc scale rc oradb --replicas=3
上面的命令完成后,我们将在列表中找到一个新容器:
NAME READY STATUS RESTARTS AGE
oradb 1/1 Running 0 1d
oradb-6rs8h 1/1 Running 0 1d
oradb-cq2x9 1/1 Running 0 1d
oradb-rplzj 1/1 Running 0 1d
这就是ReplicationController的新情况:
NAME DESIRED CURRENT AGE
oradb 3 3 1d
数据库sid是xe ,要连接的凭据是:
username: system
password: oracle
翻译自: https://www.javacodegeeks.com/2018/11/deploying-oracle-database-kubernetes.html