2017-04-11 13 views
2

私のミニクイブバージョンはv0.17.1です。私は、私のMySQLインスタンスが私のKubernetesクラスターの外にあるAWSでの環境をシミュレートしたいと思います。Minikubeはlocalhost上でMySQLを稼働させてサービスを提供しています

基本的に、私のマシン上で動作しているローカルMySQLインスタンスを、minikube経由のKubernetesクラスタに公開するにはどうしたらいいですか?

+0

たぶん、この[解答](http://stackoverflow.com/questions/38046113/minikube-not-able-to-connect-a-locally-deployed-nginx-service ) が手伝う? –

+1

本当は、または少なくとも私はわからない。これを含むほとんどの記事は、あなたのlocalhostからKubernetesで動作しているサービスにどのようにアクセスできるかを話しているようですが、私は正反対です。私のlocalhostにポートを公開し、Kubernetesクラスタで利用できるようにしてください。 – cgf

答えて

1

Kubernetesではセレクタなしでサービスを作成でき、クラスタはこのサービスの関連エンドポイントを作成しません。通常、この機能を使用してレガシーコンポーネントまたは外部コンポーネントをプロキシします。

  1. 作成セレクタ

    apiVersion: v1 
    kind: Service 
    metadata: 
        name: my-service 
    spec: 
        ports: 
         - protocol: TCP 
          port: 1443 
          targetPort: <YOUR_MYSQL_PORT> 
    
  2. ずに相対的なエンドポイントオブジェクトをサービスを作成します

    apiVersion: v1 
    kind: Endpoints 
    metadata: 
        name: my-service 
    subsets: 
        - addresses: 
         - ip: <YOUR_MASQL_ADDR> 
         ports: 
         - port: <YOUR_MYSQL_PORT> 
    
  3. 取得サービスIP

    $ kubectl get svc my-service 
    NAME   CLUSTER-IP  EXTERNAL-IP PORT(S) AGE 
    my-service <SERVICE_IP> <none>  1443/TCP 18m 
    
  4. のアクセスサービスからあなたのMYSQL <SERVICE_IP>:1443

関連する問題