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 '^]'.