oracle19c的k8s部署

前提条件

1、首先要有一个oracle 账号

2、需要一台能连接网络并安装docker的机器用Oracle账号登录Home

点击database 跳转到下一个页面

记得一定sign in ,否则无法拉取镜像

复制代码
docker pull
container-registry.oracle.com/database/enterprise:latest

执行拉取后使用镜像进行部署

oracle-dplm.yml

复制代码
apiVersion: v1
kind: Namespace
metadata:
  name: test-oracle

---
apiVersion: v1
kind: ConfigMap
metadata:
  name: oracle-init-script
  namespace: test-oracle
data:
  init.sh: |
    # 这里粘贴你的init.sh脚本内容
    echo "non-cdb setup"

    sed -i -e 's/^createAsContainerDatabase=.*/createAsContainerDatabase=false/g' \n    -e 's/^numberOfPDBs=.*/numberOfPDBs=0/g' \n    -e 's/^emConfiguration=.*/emConfiguration=NONE/g' \n    -e 's/^pdbName=###ORACLE_PDB###/#pdbName=###ORACLE_PDB###/g'  \n    -e 's/^pdbAdminPassword=###ORACLE_PWD###/#pdbAdminPassword=###ORACLE_PWD###/g' \n    /opt/oracle/dbca.rsp.tmpl

    sed -i -e 's/ALTER PLUGGABLE DATABASE/-- ALTER PLUGGABLE DATABASE/g' \n    -e 's/EXEC DBMS_XDB_CONFIG/-- EXEC DBMS_XDB_CONFIG/g'  \n    /opt/oracle/createDB.sh

    sed -i -e 's/pdbs;/database;/g' /opt/oracle/checkDBStatus.sh

    egrep 'createAsContainerDatabase=|numberOfPDBs=|emConfiguration=|pdbName=|pdbAdminPassword=' /opt/oracle/dbca.rsp.tmpl

    grep 'ALTER PLUGGABLE DATABASE' /opt/oracle/createDB.sh
    grep DBMS_XDB_CONFIG /opt/oracle/createDB.sh

    grep database /opt/oracle/checkDBStatus.sh

    echo "run /opt/oracle/runOracle.sh"

    bash /opt/oracle/runOracle.sh

---
apiVersion: v1
kind: PersistentVolume
metadata:
  name: oracle-oradata-pv
spec:
  capacity:
    storage: 10Gi
  accessModes:
    - ReadWriteOnce
  persistentVolumeReclaimPolicy: Retain
  hostPath:
    path: /home/testoraclepvc


---
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
  name: oracle-oradata-pvc
  namespace: test-oracle
spec:
  accessModes:
    - ReadWriteOnce
  resources:
    requests:
      storage: 10Gi


---
apiVersion: apps/v1
kind: Deployment
metadata:
  name: oracle-deployment
  namespace: test-oracle
spec:
  replicas: 1
  selector:
    matchLabels:
      app: oracle
  template:
    metadata:
      labels:
        app: oracle
    spec:
      containers:
      - name: oracle
        image: container-registry-tokyo.oracle.com/database/enterprise:19.3.0.0
        imagePullPolicy: IfNotPresent
        env:
        - name: TZ
          value: Asia/Shanghai
        - name: ORACLE_SID
          value: ORCL
        - name: ORACLE_PWD
          value: "123456"
        - name: ENABLE_ARCHIVELOG
          value: "false"
        - name: ORACLE_CHARACTERSET
          value: AL32UTF8
        - name: ORACLE_BASE
          value: /opt/oracle
        - name: ORACLE_HOME
          value: /opt/oracle/product/19c/dbhome_1
        - name: PATH
          value: /opt/oracle/product/19c/dbhome_1/bin:/opt/oracle/product/19c/dbhome_1/OPatch/:/usr/sbin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin
        command: ["/bin/bash", "-c", "/opt/oracle/init.sh"]
        volumeMounts:
        - name: init-script
          mountPath: /opt/oracle/init.sh
          subPath: init.sh
        - name: oradata
          mountPath: /opt/oracle/oradata
        resources:
          limits:
            memory: "6Gi"
          requests:
            memory: "2Gi"
        ports:
        - containerPort: 1521
        - containerPort: 8080
      volumes:
      - name: init-script
        configMap:
          name: oracle-init-script
          defaultMode: 493
      - name: oradata
        persistentVolumeClaim:
          claimName: oracle-oradata-pvc

oracle-service.yaml

复制代码
apiVersion: v1
kind: Service
metadata:
  name: oracle-service
  namespace: test-oracle
spec:
  type: NodePort
  selector:
    app: oracle
  ports:
  - name: oracle-port  # 添加端口名称
    port: 1521         # 服务内部使用的端口
    targetPort: 1521   # 容器中监听的端口
    nodePort: 31521    # NodePort 类型使用的端口
  - name: http-port    # 添加另一个端口名称
    port: 8080         # 另一个服务端口
    targetPort: 8080
    nodePort: 31522     # 可选,NodePort 类型的另一个端口
相关推荐
广州中轴线4 小时前
OpenStack on Kubernetes 生产部署实战(十三)
容器·kubernetes·openstack
晚霞的不甘5 小时前
Flutter for OpenHarmony天气卡片应用:用枚举与动画打造沉浸式多城市天气浏览体验
前端·flutter·云原生·前端框架
Tadas-Gao5 小时前
TCP粘包现象的深度解析:从协议本质到工程实践
网络·网络协议·云原生·架构·tcp
礼拜天没时间.5 小时前
深入Docker架构——C/S模式解析
linux·docker·容器·架构·centos
切糕师学AI5 小时前
Helm Chart 是什么?
云原生·kubernetes·helm chart
猫头虎5 小时前
如何使用Docker部署OpenClaw汉化中文版?
运维·人工智能·docker·容器·langchain·开源·aigc
会周易的程序员6 小时前
openplc runtimev4 Docker 部署
运维·c++·物联网·docker·容器·软件工程·iot
陈桴浮海6 小时前
【Linux&Ansible】学习笔记合集三
linux·运维·云原生·ansible
小Pawn爷6 小时前
1.Docker基础
运维·docker·容器
chinesegf6 小时前
清理docker残留镜像images
运维·docker·容器