Estoy ejecutando un clúster de kubernetes en mi máquina centos. No quiero crear un pod para mysql. MySQL está instalado en otra máquina en la misma red (la máquina no está en la red privada de Kubernates).
¿Cómo puedo acceder al servicio mysql desde los pods que se ejecutan en el clúster de kubernetes?
He intentado con el servicio y el punto final con la siguiente configuración. Pero, sin suerte.
apiVersion: v1 kind: Service metadata: name: database spec: ports: - port: 13080 targetPort: 13080 protocol: TCP --- kind: Deployment apiVersion: v1 metadata: name: database subsets: - addresses: - ip: XX.XX.XX.XX ports: - port: 13080 --- kind: ReplicationController metadata: name: test spec: replicas: 1 selector: app: test template: metadata: name: test labels: app: test spec: containers: - name: my_pods image: my_pods env: - name: DATABASE_HOST value: database - name: DATABASE_PORT value: "13080" - name: DATABASE_USER value: "SAAS" - name: DATABASE_PASSWORD value: "SAAS" - name: DATABASE_NAME value: "SAASDB" ports: - containerPort: 8080 imagePullSecrets: - name: my-secret --- apiVersion: v1 kind: Service metadata: name: test-service labels: name: test-service spec: type: NodePort ports: - port: 11544 targetPort: 8080 nodePort: 30600 selector: name: testNo necesita un servicio para cosas fuera del clúster. Según el modelo de red que esté utilizando, el contenedor docker (es decir, el pod de kubernetes) debería poder conectarse al contenedor MySQL normalmente a través del puente que configura Docker. Verifique que el host tenga conectividad en el puerto 3306, y la tiene, simplemente ingrese el nombre DNS (su pod kube-dns debe reenviar cualquier solicitud no basada en kubernetes a los hosts resolv.conf del host en el que fue programado)
por favor intente esto:
kubectl delete svc database kubectl create service nodeport database --tcp=13080:13080
luego use cmd a continuación para obtener la IP y el puerto correctos
kubectl get svc database