La version v0.17.1 de minikube est en cours d'exécution sur ma machine. Je souhaite simuler l'environnement que j'aurai dans AWS, où mon instance MySQL sera en dehors de mon cluster Kubernetes.
En gros, comment puis-je exposer mon instance MySQL locale s'exécutant sur ma machine au cluster Kubernetes exécuté via minikube?
Kubernetes vous permet de créer un service sans sélecteur, et le cluster ne créera pas de noeud final associé pour ce service. Cette fonctionnalité est généralement utilisée pour créer un proxy avec un composant hérité ou un composant externe.
Créer un service sans sélecteur
apiVersion: v1
kind: Service
metadata:
name: my-service
spec:
ports:
- protocol: TCP
port: 1443
targetPort: <YOUR_MYSQL_PORT>
Créer un objet Endpoint relatif
apiVersion: v1
kind: Endpoints
metadata:
name: my-service
subsets:
- addresses:
- ip: <YOUR_MYSQL_ADDR>
ports:
- port: <YOUR_MYSQL_PORT>
Obtenir le service IP
$ kubectl get svc my-service
NAME CLUSTER-IP EXTERNAL-IP PORT(S) AGE
my-service <SERVICE_IP> <none> 1443/TCP 18m
Accédez à votre MYSQL à partir du service <SERVICE_IP>:1443
ou my-service:1443
Si vous souhaitez mapper un port local sur un cluster Minikube, vous pouvez utiliser kubectl port-forward
comme indiqué dans la documentation Kubernetes .
Voici un exemple de mappage 127.0.0.1:6379
avec un service Redis sur minikube ip sur le même port.
kubectl port-forward svc/redis-master 6379:6379