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

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

新規登録して質問してみよう
ただいま回答率
85.50%
Google Cloud Platform

Google Cloud Platformは、Google社がクラウド上で提供しているサービス郡の総称です。エンドユーザー向けサービスと同様のインフラストラクチャーで運営されており、Webサイト開発から複雑なアプリ開発まで対応可能です。

Docker

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

Google Container Engine (GKE)

Google Container Engine (GKE) は、Dockerコンテナのオープンソース管理ソフトウェア、Kubernetesのクラスタを簡単にデプロイ可能にするサービスです。

Q&A

解決済

1回答

549閲覧

GoogleContainerEngine/k8s のポートフォワードがうまくいかない?

bakaemon

総合スコア35

Google Cloud Platform

Google Cloud Platformは、Google社がクラウド上で提供しているサービス郡の総称です。エンドユーザー向けサービスと同様のインフラストラクチャーで運営されており、Webサイト開発から複雑なアプリ開発まで対応可能です。

Docker

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

Google Container Engine (GKE)

Google Container Engine (GKE) は、Dockerコンテナのオープンソース管理ソフトウェア、Kubernetesのクラスタを簡単にデプロイ可能にするサービスです。

0グッド

0クリップ

投稿2019/01/06 19:54

編集2019/01/06 19:56

81番ポートをLISTENするテスト用apacheコンテナを作ったのですが、
k8sに上記をデプロイした後ブラウザからアクセスしても、ERR_CONNECTION_REFUSED になってしまいます。

こちらのサイトを見て、記載のある通りのコマンドが最後まで動くことはまず確認しました。
https://qiita.com/yusukixs/items/11601607c629295d31a7

その後、81番ポートを受け付けるコンテナを作って、それがうまくいっていることはDocker上では確認しました。

[root@os3-374-20202 kubernetes_demo]# docker ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 8ae07dba6e1f asia.gcr.io/friendly-access-227417/ga-k8s-test2:ga "/sbin/init" About an hour ago Up About an hour 80/tcp, 0.0.0.0:81->81/tcp ga_k8s-test1 b5b9a182ca27 laradock_beanstalkd "/usr/bin/beanstalkd" 8 hours ago Up 8 hours 0.0.0.0:11300->11300/tcp laradock_beanstalkd_1 54de35884935 laradock_nginx "/bin/bash /opt/star…" 8 hours ago Up 8 hours 0.0.0.0:80->80/tcp, 0.0.0.0:443->443/tcp laradock_nginx_1 fce505b944c5 laradock_php-fpm "docker-php-entrypoi…" 8 hours ago Up 8 hours 9000/tcp laradock_php-fpm_1 cc2c20deff49 laradock_workspace "/sbin/my_init" 8 hours ago Up 8 hours 0.0.0.0:2222->22/tcp laradock_workspace_1 5bb8870c05d4 laradock_mysql "docker-entrypoint.s…" 8 hours ago Up 8 hours 0.0.0.0:3306->3306/tcp, 33060/tcp laradock_mysql_1 23968ee56bc4 docker:dind "dockerd-entrypoint.…" 8 hours ago Up 8 hours 2375/tcp laradock_docker-in-docker_1 ef4e1aa9c143 laradock_redis "docker-entrypoint.s…" 8 hours ago Up 8 hours 0.0.0.0:6379->6379/tcp laradock_redis_1 ※一番上の コンテナID 8ae07dba6e1f は81番ポートで待ち受けていて、 http:xxx.xxx.xxx:81 とURLを指定することでブラウザ上から内容を閲覧できることは確認済み。

なので、コンテナID 8ae07dba6e1f をk8s上でポートフォワードさせればよいかと思ったのですが、うまくいきません。
以下に作業内容を貼りますので何か気づく点があったら教えていただきたいです。

①クラスタを作成する gcloud container clusters create --num-nodes=2 ga-test-cluster \ --zone asia-northeast1-a \ --machine-type g1-small \ --enable-autoscaling --min-nodes=2 --max-nodes=5 ②81番ポートでコンテナID 8ae07dba6e1f を起動させる kubectl run ga-deploy \ --image=asia.gcr.io/friendly-access-227417/ga-k8s-test2:ga \ --replicas=1 \ --port=81 \ --limits=cpu=200m ③80番へのアクセスを81番へポートフォワードさせる設定で②をexposeする。 kubectl expose deployment ga-deploy --port=80 --target-port=81 --type=LoadBalancer

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

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

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

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

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

guest

回答1

0

自己解決

根本解決は全然できていませんが、閲覧することはできました。
なんとなく原因は分かりました・・・。

原因 コンテナ内でsystemctlコマンドは使えない。

コンテナID 8ae07dba6e1f(問題の81番ポートのコンテナ) は、systemctlを用いてhttpdの起動管理をしていました。 でも、GCEはコンテナをrunさせるときに -d --priviled オプションをつけてくれないので、 起動したコンテナ内では systemctlを使うことができませんでした。 GCEのPODの中の起動しているコンテナに入って、コマンドで直接httpdを実行させたらうまくいきました。 # /usr/sbin/httpd -f /etc/httpd/conf/httpd.conf

もしかして、DockerのCENTOS7ではsystemctlとかは使わなかったりするんでしょうか?
色々ド素人なのでよくわかりません????

まずはGCEで起動しているPODの中に入って原因調査するべきでした。そうしたら、httpdが起動しているかどうかも分かったと思うので、質問もしなくて済んだかな というカンジです。

投稿2019/01/08 22:44

編集2019/01/08 22:49
bakaemon

総合スコア35

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.50%

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

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

質問する

関連した質問