当前位置:网站首页>k8s运行oracle

k8s运行oracle

2022-07-07 01:03:00 喝醉酒的小白

1、创建命名空间

alias k='kubectl'
k create ns oracle-server
k get ns

2、创建.yaml文件

K8S安装Oracle11g
备注:端口1521 -> 31521

apiVersion: apps/v1
kind: Deployment
metadata:
  labels:
    app: oracle-server
  name: oracle-server
  namespace: oracle-server
spec:
  selector:
    matchLabels:
      app: oracle-server
  template:
    metadata:
      labels:
        app: oracle-server
    spec:
      containers:
      - image: registry.cn-hangzhou.aliyuncs.com/liyusoft/tool-oracle:v1.0.1
        imagePullPolicy: IfNotPresent
        name: oracle-server
        ports:
        - containerPort: 31521
        command: ['/assets/entrypoint.sh']
        env:
        - name: ORACLE_HOME
          value: "/opt/oracle/app/product/11.2.0/dbhome_1"
        - name: ORACLE_SID
          value: "orcl"
        volumeMounts:  #挂载持久存储卷 
        - name: oracle-volume #挂载设备的名字,与volumes[*].name 需要对应     
          mountPath: /opt/oracle/dpdump/1/dump_dir #挂载到容器的某个路径下   
          readOnly: true
      volumes: #定义一组挂载设备   
      - name: oracle-volume #定义一个挂载设备的名字   
        hostPath:   
          path: /opt/ #挂载设备类型为hostPath,路径为宿主机下的/opt,这里设备类型支持很多种 

yaml文件注释

3、运行pod

k apply -f oracle.yaml
alias ko='k -n oracle-server'

4、进入pod

问题:

Error from server (BadRequest): container "oracle-server" in pod "oracle-server"  is waiting to start: trying and failing to pull image.
  Normal  Pulling    3m5s  kubelet            Pulling image "registry.cn-hangzhou.aliyuncs.com/liyusoft/tool-oracle:v1.0.1"

解决方案:
需等待大约10分钟,正在拉取镜像

ko get pod
NAME                             READY   STATUS    RESTARTS   AGE
oracle-server-56c657455b-7kfj6   1/1     Running   0          4h21m
kubectl exec -it oracle-server-56c657455b-7kfj6  bash

5、查看pod

ko describe pod oracle-server-56c657455b-7kfj6

Name:         oracle-server-56c657455b-7kfj6
Namespace:    oracle-server
Priority:     0
Node:         */**** Start Time: Wed, 06 Jul 2022 18:06:36 +0800 Labels: app=oracle-server pod-template-hash=56c657455b Annotations: <none> Status: Running IP: 10.244.0.105 IPs: IP: 10.244.0.105 Controlled By: ReplicaSet/oracle-server-56c657455b Containers: oracle-server: Container ID: docker://d001f4097d165fcb11203cd87df50308a9c4eb335ec9edb1f05373bbff7b9269 Image: registry.cn-hangzhou.aliyuncs.com/liyusoft/tool-oracle:v1.0.1 Image ID: docker-pullable://registry.cn-hangzhou.aliyuncs.com/liyusoft/[email protected]:660da6cea178223432e406b95435bf0cd62d6ccc7a637f9f51d32e87a4fb54c7 Port: 31525/TCP Host Port: 0/TCP Command: /assets/entrypoint.sh State: Running Started: Wed, 06 Jul 2022 18:15:41 +0800 Ready: True Restart Count: 0 Environment: ORACLE_HOME: /opt/oracle/app/product/11.2.0/dbhome_1 ORACLE_SID: orcl Mounts: /opt/oracle/dpdump/1/dump_dir from oracle-volume (ro) /var/run/secrets/kubernetes.io/serviceaccount from default-token-kzhg5 (ro) Conditions: Type Status Initialized True Ready True ContainersReady True PodScheduled True Volumes: oracle-volume: Type: HostPath (bare host directory volume) Path: /opt/dump_dir HostPathType: default-token-kzhg5: Type: Secret (a volume populated by a Secret) SecretName: default-token-kzhg5 Optional: false QoS Class: BestEffort Node-Selectors: <none> Tolerations: node.kubernetes.io/not-ready:NoExecute for 300s node.kubernetes.io/unreachable:NoExecute for 300s Events: <none> 

6、查看日志

ko logs -f oracle-server-56c657455b-7kfj6

7、删除pod

ko delete pod oracle-server-56c657455b-7kfj6
pod "oracle-server-56c657455b-7kfj6" deleted

问题:删除后又自己重启了

ko get deployments
NAME            READY   UP-TO-DATE   AVAILABLE   AGE
oracle-server   1/1     1            1           4h44m

解决方案1:不行!

ko delete pod oracle-server-56c657455b-lffbf --force --grace-period=0
warning: Immediate deletion does not wait for confirmation that the running resource has been terminated. The resource may continue to run on the cluster indefinitely.
pod "oracle-server-56c657455b-lffbf" force deleted
ko get pod
Unable to connect to the server: net/http: TLS handshake timeout
ko get pod
Error from server (Timeout): the server was unable to return a response in the time allotted, but may still be processing the request (get pods)
You have new mail in /var/spool/mail/root
ko get pod
NAME                             READY   STATUS    RESTARTS   AGE
oracle-server-56c657455b-cwcnt   1/1     Running   0          3m48s

解决方案2:删除命名空间

ko delete --all pods
Error from server (Timeout): the server was unable to return a response in the time allotted, but may still be processing the request (get pods)
kubectl delete ns oracle-server
namespace "oracle-server" deleted
You have new mail in /var/spool/mail/root
原网站

版权声明
本文为[喝醉酒的小白]所创,转载请带上原文链接,感谢
https://blog.csdn.net/hezuijiudexiaobai/article/details/125649649