Kubernetes - 部署oralce服务

配置k8s 应用资源

#编辑 oralce.yaml
[root@k8s-master01 ~]# cat  oralce.yaml
apiVersion: apps/v1
kind: Deployment
metadata:
  labels:
    app: oracle11g
  name: oracle11g
spec:
  replicas: 1
  selector:
    matchLabels:
      app: oracle11g
  template:
    metadata:
      labels:
        app: oracle11g
    spec:
      nodeName: 192.168.40.111
      containers:
      - image:  registry.aliyuncs.com/helowin/oracle_11g
        name: oracle11g
        ports:
        - containerPort: 1521
        
kubectl apply -f oralce.yaml

#编辑 oracle-service.yaml
[root@k8s-master01 ~]# cat oracle-service.yaml
apiVersion: v1
kind: Service
metadata:
  name: oracle-service
spec:
  ports:
  - name: oracle-service
    port: 1521
    targetPort: 1521
    nodePort: 30052
  selector:
    app: oracle11g
  type: NodePort

 kubectl apply -f oracle-service.yaml
 
 [root@k8s-master01 ~]# kubectl get svc
NAME                                  TYPE        CLUSTER-IP       EXTERNAL-IP   PORT(S)          AGE
kubernetes                            ClusterIP   10.100.0.1       <none>        443/TCP          44d
oracle-service                        NodePort    10.100.74.201    <none>        1521:30052/TCP   8m58s

[root@k8s-master01 ~]# kubectl get pods
NAME                                      READY   STATUS      RESTARTS        AGE
oracle11g-7b57c94544-kcx4x                1/1     Running     0               22m

配置环境变量

[root@k8s-master01 ~]# kubectl exec oracle11g-7b57c94544-kcx4x -it bash
kubectl exec [POD] [COMMAND] is DEPRECATED and will be removed in a future version. Use kubectl exec [POD] -- [COMMAND] instead.
#password:helowin
[oracle@oracle11g-7b57c94544-kcx4x /]$ su -
Password:helowin

[root@oracle11g-7b57c94544-kcx4x ~]# vi /etc/profile

export ORACLE_HOME=/home/oracle/app/oracle/product/11.2.0/dbhome_2
export ORACLE_SID=helowin
export PATH=$ORACLE_HOME/bin:$PATH

[root@oracle11g-7b57c94544-kcx4x ~]# source  /etc/profile

[root@oracle11g-7b57c94544-kcx4x ~]# su - oracle
[oracle@oracle11g-7b57c94544-kcx4x ~]$ sqlplus / as sysdba

alter user system identified by oracle;
alter user sys identified by oracle;
ALTER PROFILE DEFAULT LIMIT PASSWORD_LIFE_TIME UNLIMITED;

exit

#确保监听打开
lsnrctl status

 确认应用是否正常

[root@k8s-master01 ~]# kubectl get pods -o wide | grep oracle11g
oracle11g-7b57c94544-kcx4x                1/1     Running     0               30m     10.200.85.255   192.168.40.111   <none>           <none>

[root@k8s-master01 ~]# kubectl describe svc oracle-service
Name:                     oracle-service
Namespace:                default
Labels:                   <none>
Annotations:              <none>
Selector:                 app=oracle11g
Type:                     NodePort
IP Family Policy:         SingleStack
IP Families:              IPv4
IP:                       10.100.74.201
IPs:                      10.100.74.201
Port:                     oracle-service  1521/TCP
TargetPort:               1521/TCP
NodePort:                 oracle-service  30052/TCP
Endpoints:                10.200.85.255:1521
Session Affinity:         None
External Traffic Policy:  Cluster
Events:                   <none>

[root@k8s-master01 ~]# ipvsadm -Ln
IP Virtual Server version 1.2.1 (size=4096)
Prot LocalAddress:Port Scheduler Flags
  -> RemoteAddress:Port           Forward Weight ActiveConn InActConn
TCP  192.168.40.101:30052 rr
  -> 10.200.85.255:1521 
  
#外部暴露端口为了 配置数据
[root@k8s-master01 ~]# telnet 192.168.40.101 30052
Trying 192.168.40.101...
Connected to 192.168.40.101.
Escape character is '^]'.

 

posted @ 2023-12-29 13:27  しみずよしだ  阅读(41)  评论(0)    收藏  举报