如何在本地机器上使用 kubectl 运行 远程镜像(Oracle 容器镜像)?
How to run remote image (Oracle Container Image) using kubectl in local machine?
我在本地机器上使用 minikube 和 kubectl。现在我需要 运行 一个带有这些的 oracle 数据库。它可以是任何数据库。
你能告诉我如何通过 minikube 和 kubectl 运行 我本地机器上的 oracle 数据库吗?
方案A:
可以通过直接向k8s提交yaml文件的形式部署oracle服务
部署
以下是Oracle部署的定义代码
这段代码由两部分组成,分别是Oracle部署及其代理服务的部署。这里部署的Oracle数据库是11g r2,使用的镜像是mybook2019/oracle-ee-11g:v1.0
。通过NodePort方式暴露1521
和8080
两个端口,通过nfs
文件系统持久化Oracle数据
oracle-service.yaml
apiVersion: v1
kind: Service
metadata:
name: oralce-svc
labels:
app: oralce
spec:
type: NodePort
ports:
- port: 1521
targetPort: 1521
name: oracle1521
- port: 8080
targetPort: 8080
name: oralce8080
selector:
app: oralce
oracle-deployment.yaml
apiVersion: apps/v1
kind: Deployment
metadata:
name: oralce
spec:
replicas: 1
selector:
matchLabels:
app: oralce
strategy:
type: Recreate
template:
metadata:
labels:
app: oralce
spec:
containers:
- image: mybook2019/oracle-ee-11g:v1.0
name: oralce
- containerPort: 1521
name: oralce1521
- containerPort: 8080
name: oralce8080
volumeMounts:
- name: oralce-data
mountPath: /u01/app/oracle
volumes:
- name: oralce-data
nfs:
path: /home/sharenfs/oracle
server: 192.168.8.132
通过kubectl
执行以下命令在Kubernetes集群中部署Oracle数据库
$ kubectl create -f oracle-service.yaml
$ kubectl create -f oracle-deployment.yaml
部署完成后,可以通过以下命令查看oracle暴露的端口(这里的端口是1521
和32175
)
$ kubectl get svc
检查
Kubernetes集群中的应用,连接数据库的相关信息如下:
hostname: oracle-svc.default
port: 1521
sid: EE
service name: EE.oracle.docker
username: system
password: oracle
对于oracle客户端所在的机器,执行以下命令连接数据库
$ sqlplus system/oracle@//oracle-svc.kube-public:1521/EE.oracle.docker
对于Kubernetes集群外的应用,用于连接数据库的相关信息如下:
hostname: 10.0.32.165
port: 32175
sid: EE
service name: EE.oracle.docker
username: system
password: oracle
对于oracle客户端所在的机器,执行以下命令连接数据库
$ sqlplus system/oracle@//10.0.32.165:32175/EE.oracle.docker
B计划:
通过 helm 安装 chart
安装版本名称为 db19c
的图表:
Helm 3.x 语法
$ helm install db19c oracle-db-1.0.0.tgz
Helm 2.x 语法
$ helm install --name db19c oracle-db-1.0.0.tgz
该命令以默认配置在 Kubernetes 集群上部署 Oracle 数据库。配置部分列出了安装过程中可以配置的参数。
如果您可以分享有关您已尝试在 minikube 上部署 Oracle 数据库的详细信息,将会有所帮助,否则您的问题显得过于笼统。
对于要部署在 minikube 等 kubernetes 发行版上的任何应用程序——您需要该应用程序(在本例中为 Oracle 数据库)的清单,它会描述应用程序的所需状态。
然后您可以使用服务公开该应用程序并使用它。
我在本地机器上使用 minikube 和 kubectl。现在我需要 运行 一个带有这些的 oracle 数据库。它可以是任何数据库。
你能告诉我如何通过 minikube 和 kubectl 运行 我本地机器上的 oracle 数据库吗?
方案A:
可以通过直接向k8s提交yaml文件的形式部署oracle服务
部署
以下是Oracle部署的定义代码
这段代码由两部分组成,分别是Oracle部署及其代理服务的部署。这里部署的Oracle数据库是11g r2,使用的镜像是mybook2019/oracle-ee-11g:v1.0
。通过NodePort方式暴露1521
和8080
两个端口,通过nfs
文件系统持久化Oracle数据
oracle-service.yaml
apiVersion: v1
kind: Service
metadata:
name: oralce-svc
labels:
app: oralce
spec:
type: NodePort
ports:
- port: 1521
targetPort: 1521
name: oracle1521
- port: 8080
targetPort: 8080
name: oralce8080
selector:
app: oralce
oracle-deployment.yaml
apiVersion: apps/v1
kind: Deployment
metadata:
name: oralce
spec:
replicas: 1
selector:
matchLabels:
app: oralce
strategy:
type: Recreate
template:
metadata:
labels:
app: oralce
spec:
containers:
- image: mybook2019/oracle-ee-11g:v1.0
name: oralce
- containerPort: 1521
name: oralce1521
- containerPort: 8080
name: oralce8080
volumeMounts:
- name: oralce-data
mountPath: /u01/app/oracle
volumes:
- name: oralce-data
nfs:
path: /home/sharenfs/oracle
server: 192.168.8.132
通过kubectl
执行以下命令在Kubernetes集群中部署Oracle数据库
$ kubectl create -f oracle-service.yaml
$ kubectl create -f oracle-deployment.yaml
部署完成后,可以通过以下命令查看oracle暴露的端口(这里的端口是1521
和32175
)
$ kubectl get svc
检查
Kubernetes集群中的应用,连接数据库的相关信息如下:
hostname: oracle-svc.default
port: 1521
sid: EE
service name: EE.oracle.docker
username: system
password: oracle
对于oracle客户端所在的机器,执行以下命令连接数据库
$ sqlplus system/oracle@//oracle-svc.kube-public:1521/EE.oracle.docker
对于Kubernetes集群外的应用,用于连接数据库的相关信息如下:
hostname: 10.0.32.165
port: 32175
sid: EE
service name: EE.oracle.docker
username: system
password: oracle
对于oracle客户端所在的机器,执行以下命令连接数据库
$ sqlplus system/oracle@//10.0.32.165:32175/EE.oracle.docker
B计划:
通过 helm 安装 chart
安装版本名称为 db19c
的图表:
Helm 3.x 语法
$ helm install db19c oracle-db-1.0.0.tgz
Helm 2.x 语法
$ helm install --name db19c oracle-db-1.0.0.tgz
该命令以默认配置在 Kubernetes 集群上部署 Oracle 数据库。配置部分列出了安装过程中可以配置的参数。
如果您可以分享有关您已尝试在 minikube 上部署 Oracle 数据库的详细信息,将会有所帮助,否则您的问题显得过于笼统。
对于要部署在 minikube 等 kubernetes 发行版上的任何应用程序——您需要该应用程序(在本例中为 Oracle 数据库)的清单,它会描述应用程序的所需状态。
然后您可以使用服务公开该应用程序并使用它。