質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.49%
docker-compose

docker-composeとは、複数のコンテナで構成されるサービスを提供する手順を自動的し管理を簡単にするツール。composeファイルを使用しコマンド1回で設定した全サービスを作成・起動することが可能です。

Docker

Dockerは、Docker社が開発したオープンソースのコンテナー管理ソフトウェアの1つです

Q&A

0回答

750閲覧

compose on kubernetesのサンプルを実行しても、ブラウザからサービスに接続できない

SST8897

総合スコア155

docker-compose

docker-composeとは、複数のコンテナで構成されるサービスを提供する手順を自動的し管理を簡単にするツール。composeファイルを使用しコマンド1回で設定した全サービスを作成・起動することが可能です。

Docker

Dockerは、Docker社が開発したオープンソースのコンテナー管理ソフトウェアの1つです

0グッド

0クリップ

投稿2020/03/08 03:33

前提・実現したいこと

compose-on-kubernetesという、docker-composeのyamlファイルを元にKubernetes上で動かしてくれるツールがあります。

公式リポジトリのサンプルを動かしてブラウザから接続できるようにしたいです。

発生している問題・エラーメッセージ

公式リポジトリのトップのREADMEの通りに動かしていますが、起動したサービスに期待した通りにブラウザから接続できません。

こちらのサイト(Compose on Kubrenetes を使ってみる)でもサンプルの動かし方が説明されています。
そこでは起動後に以下のようにブラウザからアクセスできると書いてありますが、http://localhost:33000では以下の画像のようにアクセスできませんでした。

docker-compose.yml にあるように http://localhost:33000 にアクセスできる。

イメージ説明

該当のソースコード

実行したコマンドを書きます。以下のステップで起動します。

bash

1#リポジトリのクローン 2$ git clone https://github.com/docker/compose-on-kubernetes.git 3 4#サンプルのディレクトリに移動 5$ cd compose-on-kubernetes/samples 6 7#起動 8$ docker stack deploy --orchestrator=kubernetes -c docker-compose.yml hellokube

実行すると、以下のような状態になりました。

$ kubectl get all --all-namespaces NAMESPACE NAME READY STATUS RESTARTS AGE default pod/db-0 1/1 Running 0 31s default pod/web-7d58dc945-5dl92 1/1 Running 0 31s default pod/words-84d9ff9d4d-569n7 1/1 Running 0 31s default pod/words-84d9ff9d4d-8m57r 1/1 Running 0 31s default pod/words-84d9ff9d4d-hjtnf 1/1 Running 0 31s default pod/words-84d9ff9d4d-hltrt 1/1 Running 0 31s default pod/words-84d9ff9d4d-pjrhm 1/1 Running 0 31s docker pod/compose-7b7c5cbbcc-zn7mm 1/1 Running 0 89s docker pod/compose-api-dbbf7c5db-fp52g 1/1 Running 0 89s kube-system pod/coredns-5c98db65d4-7zq4w 1/1 Running 1 2m37s kube-system pod/coredns-5c98db65d4-fgwdk 1/1 Running 1 2m37s kube-system pod/etcd-docker-desktop 1/1 Running 0 92s kube-system pod/kube-apiserver-docker-desktop 1/1 Running 0 92s kube-system pod/kube-controller-manager-docker-desktop 1/1 Running 0 90s kube-system pod/kube-proxy-vz7cn 1/1 Running 0 2m37s kube-system pod/kube-scheduler-docker-desktop 1/1 Running 0 80s NAMESPACE NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE default service/db ClusterIP None <none> 55555/TCP 31s default service/kubernetes ClusterIP 10.96.0.1 <none> 443/TCP 2m47s default service/web ClusterIP None <none> 55555/TCP 31s default service/web-published LoadBalancer 10.109.159.146 localhost 80:31672/TCP 31s default service/words ClusterIP None <none> 55555/TCP 31s docker service/compose-api ClusterIP 10.102.27.216 <none> 443/TCP 89s kube-system service/kube-dns ClusterIP 10.96.0.10 <none> 53/UDP,53/TCP,9153/TCP 2m46s NAMESPACE NAME DESIRED CURRENT READY UP-TO-DATE AVAILABLE NODE SELECTOR AGE kube-system daemonset.apps/kube-proxy 1 1 1 1 1 beta.kubernetes.io/os=linux 2m45s NAMESPACE NAME READY UP-TO-DATE AVAILABLE AGE default deployment.apps/web 1/1 1 1 31s default deployment.apps/words 5/5 5 5 31s docker deployment.apps/compose 1/1 1 1 89s docker deployment.apps/compose-api 1/1 1 1 89s kube-system deployment.apps/coredns 2/2 2 2 2m46s NAMESPACE NAME DESIRED CURRENT READY AGE default replicaset.apps/web-7d58dc945 1 1 1 31s default replicaset.apps/words-84d9ff9d4d 5 5 5 31s docker replicaset.apps/compose-7b7c5cbbcc 1 1 1 89s docker replicaset.apps/compose-api-dbbf7c5db 1 1 1 89s kube-system replicaset.apps/coredns-5c98db65d4 2 2 2 2m37s NAMESPACE NAME READY AGE default statefulset.apps/db 1/1 31s

試したこと

kubectl proxyを使っての接続

次のコマンドで接続するべきサービス名を見つけます。接続するのは web-publishedということにします。

$ kubectl get svc NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE db ClusterIP None <none> 55555/TCP 35m kubernetes ClusterIP 10.96.0.1 <none> 443/TCP 37m web ClusterIP None <none> 55555/TCP 35m web-published LoadBalancer 10.109.159.146 localhost 80:31672/TCP 35m words ClusterIP None <none> 55555/TCP 35m

次のコマンドを打ちます。

$ kubectl proxy

そしてブラウザからURL http://127.0.0.1:8001/api/v1/namespaces/default/services/web-published:80/proxy/ にアクセスしました。

不完全ながらページが表示されます。(おもちゃのブロックの中の文字が出てない点が不完全。 Chromeの開発者ツールのコンソールには次のように出ています。 Failed to load resource: net::ERR_CONNECTION_REFUSED :8001/words/noun:1  )
イメージ説明

なお本来どういうページかは参考サイト(Compose on Kubrenetes を使ってみる)に画像があります。
参考サイトの画像だとサイトのタイトルがdockercon18EUで、僕が試したらdockercon17EUと出るのはなんかひっかかりますが…。もしかしてなにか古いのかも?

Kubernetes環境のリセット

docker desktopのGUIメニューのTroubleshootからReset Kubernetes clusterReset disk imageを実行し、再起動しました。

再チャレンジしても同じでした。

補足情報(FW/ツールのバージョンなど)

macOS 10.14.6,
docker desktop ver. 2.2.0.3です

docker engine 19.03.5
Compose 1.25.4
Kubernetes v1.15.5

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだ回答がついていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.49%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問