【问题标题】:How to run remote image (Oracle Container Image) using kubectl in local machine?如何在本地机器上使用 kubectl 运行远程镜像(Oracle 容器镜像)?
【发布时间】:2022-01-26 23:00:36
【问题描述】:

我在本地机器上使用 minikube 和 kubectl。现在我需要用这些运行一个 oracle 数据库。它可以是任何数据库。

能否告诉我如何通过 minikube 和 kubectl 在本地机器上运行 oracle 数据库?

【问题讨论】:

    标签: oracle kubernetes oracle12c kubectl minikube


    【解决方案1】:

    如果您可以分享有关在 minikube 上部署 Oracle 数据库的尝试的详细信息,将会有所帮助,否则您的问题显得过于笼统。

    对于要在 minikube 等 kubernetes 发行版上部署的任何应用程序,您需要该应用程序的清单(在本例中为 Oracle 数据库),该清单将描述应用程序的所需状态。

    然后您可以使用服务公开该应用程序并使用它。

    【讨论】:

      【解决方案2】:

      A计划:

      可以通过直接提交yaml文件到k8s的形式部署oracle服务。

      部署

      以下是Oracle部署的定义代码。

      这段代码由两部分组成,即Oracle部署的部署和它的代理服务。这里部署的Oracle数据库是11g r2,使用的镜像是mybook2019/oracle-ee-11g:v1.015218080这两个端口通过NodePort方式暴露,Oracle数据通过nfs文件系统持久化。

      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执行以下命令,将Oracle数据库部署到Kubernetes集群中。

      $ kubectl create -f oracle-service.yaml
      $ kubectl create -f oracle-deployment.yaml
      

      部署完成后,可以通过如下命令查看oracle暴露的端口(这里的端口是152132175

      $ 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 数据库。配置部分列出了安装过程中可以配置的参数。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2022-01-10
        • 1970-01-01
        • 1970-01-01
        • 2019-05-01
        • 2020-08-08
        • 2019-01-13
        相关资源
        最近更新 更多