From 1d509c851886ae5bfed8f43265480534db20423a Mon Sep 17 00:00:00 2001 From: Yuki Nagae Date: Fri, 3 May 2019 16:27:02 +0900 Subject: [PATCH 1/2] ja-trans: Translate tasks/debug-application-cluster/get-shell-running-container/ #13381 --- .../get-shell-running-container.md | 142 ++++++++++++++++++ content/ja/includes/task-tutorial-prereqs.md | 8 +- 2 files changed, 145 insertions(+), 5 deletions(-) create mode 100644 content/ja/docs/tasks/debug-application-cluster/get-shell-running-container.md diff --git a/content/ja/docs/tasks/debug-application-cluster/get-shell-running-container.md b/content/ja/docs/tasks/debug-application-cluster/get-shell-running-container.md new file mode 100644 index 0000000000000..ffde7a98ef827 --- /dev/null +++ b/content/ja/docs/tasks/debug-application-cluster/get-shell-running-container.md @@ -0,0 +1,142 @@ +--- +title: 実行中のコンテナへのシェルを取得する +content_template: templates/task +--- + +{{% capture overview %}} + + +このページは`kubectl exec`を使用して実行中のコンテナへのシェルを取得する方法を説明します。 + +{{% /capture %}} + + +{{% capture prerequisites %}} + +{{< include "task-tutorial-prereqs.md" >}} {{< version-check >}} + +{{% /capture %}} + + +{{% capture steps %}} + +## コンテナへのシェルの取得 + +このエクササイズでは、1つのコンテナを持つPodを作成します。 +コンテナはnginxのイメージを実行します。以下がそのPodの設定ファイルです: + +{{< codenew file="application/shell-demo.yaml" >}} + +Podを作成します: + +```shell +kubectl create -f https://k8s.io/examples/application/shell-demo.yaml +``` + +コンテナが実行中であることを確認します: + +```shell +kubectl get pod shell-demo +``` + +実行中のコンテナへのシェルを取得します: + +```shell +kubectl exec -it shell-demo -- /bin/bash +``` +{{< note >}} + +ダブルダッシュの記号 "--" はコマンドに渡す引数とkubectlの引数を分離します。 + +{{< /note >}} + +シェル内で、ルートディレクトリーのファイル一覧を表示します: + +```shell +root@shell-demo:/# ls / +``` + +シェル内で、他のコマンドを試しましょう。以下がいくつかの例です: + +```shell +root@shell-demo:/# ls / +root@shell-demo:/# cat /proc/mounts +root@shell-demo:/# cat /proc/1/maps +root@shell-demo:/# apt-get update +root@shell-demo:/# apt-get install -y tcpdump +root@shell-demo:/# tcpdump +root@shell-demo:/# apt-get install -y lsof +root@shell-demo:/# lsof +root@shell-demo:/# apt-get install -y procps +root@shell-demo:/# ps aux +root@shell-demo:/# ps aux | grep nginx +``` + +## nginxのルートページへの書き込み + +Podの設定ファイルを再度確認します。Podは`emptyDir`ボリュームを持ち、 +コンテナは`/usr/share/nginx/html`ボリュームをマウントします。 + +シェル内で、`/usr/share/nginx/html`ディレクトリに`index.htnml`を作成します。 + +```shell +root@shell-demo:/# echo Hello shell demo > /usr/share/nginx/html/index.html +``` + +シェル内で、nginxサーバーにGETリクエストを送信します: + +```shell +root@shell-demo:/# apt-get update +root@shell-demo:/# apt-get install curl +root@shell-demo:/# curl localhost +``` + +出力に`index.html`ファイルに書き込んだ文字列が表示されます: + +```shell +Hello shell demo +``` + +シェルを終了する場合、`exit`を入力します。 + +## コンテナ内での各コマンドの実行 + +シェルではない通常のコマンドウインドウ内で、実行中のコンテナの環境変数の一覧を表示します: + +```shell +kubectl exec shell-demo env +``` + +他のコマンドを試します。以下がいくつかの例です: + +```shell +kubectl exec shell-demo ps aux +kubectl exec shell-demo ls / +kubectl exec shell-demo cat /proc/1/mounts +``` + +{{% /capture %}} + +{{% capture discussion %}} + +## Podが1つ以上のコンテナを持つ場合にシェルを開く + +Podが1つ以上のコンテナを持つ場合、`--container`か`-c`を使用して、`kubectl exec`コマンド内でコンテナを指定します。 +例えば、my-podという名前のPodがあり、そのPodがmain-appとhelper-appという2つのコンテナを持つとします。 +以下のコマンドはmain-appのコンテナへのシェルを開きます。 + +```shell +kubectl exec -it my-pod --container main-app -- /bin/bash +``` + +{{% /capture %}} + + +{{% capture whatsnext %}} + +* [kubectl exec](/docs/reference/generated/kubectl/kubectl-commands/#exec) + +{{% /capture %}} + + + diff --git a/content/ja/includes/task-tutorial-prereqs.md b/content/ja/includes/task-tutorial-prereqs.md index 76e9a1698bc0d..043e14681af90 100644 --- a/content/ja/includes/task-tutorial-prereqs.md +++ b/content/ja/includes/task-tutorial-prereqs.md @@ -1,8 +1,6 @@ -You need to have a Kubernetes cluster, and the kubectl command-line tool must -be configured to communicate with your cluster. If you do not already have a -cluster, you can create one by using -[Minikube](/docs/setup/minikube), -or you can use one of these Kubernetes playgrounds: +Kubernetesクラスターが必要、かつそのクラスターと通信するためにkubectlコマンドラインツールが設定されている必要があります。 +まだクラスターがない場合、[Minikube](/ja/docs/setup/minikube)を使って作成するか、 +以下のいずれかのKubernetesプレイグラウンドも使用できます: * [Katacoda](https://www.katacoda.com/courses/kubernetes/playground) * [Play with Kubernetes](http://labs.play-with-k8s.com/) From 81cca576f9443bde98e3050d5f7965f2b767dd08 Mon Sep 17 00:00:00 2001 From: Yuki Nagae Date: Wed, 26 Jun 2019 14:33:33 +0900 Subject: [PATCH 2/2] Update content/ja/docs/tasks/debug-application-cluster/get-shell-running-container.md Fix typo Co-Authored-By: nasa9084 --- .../debug-application-cluster/get-shell-running-container.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/content/ja/docs/tasks/debug-application-cluster/get-shell-running-container.md b/content/ja/docs/tasks/debug-application-cluster/get-shell-running-container.md index ffde7a98ef827..40f903789fa2e 100644 --- a/content/ja/docs/tasks/debug-application-cluster/get-shell-running-container.md +++ b/content/ja/docs/tasks/debug-application-cluster/get-shell-running-container.md @@ -77,7 +77,7 @@ root@shell-demo:/# ps aux | grep nginx Podの設定ファイルを再度確認します。Podは`emptyDir`ボリュームを持ち、 コンテナは`/usr/share/nginx/html`ボリュームをマウントします。 -シェル内で、`/usr/share/nginx/html`ディレクトリに`index.htnml`を作成します。 +シェル内で、`/usr/share/nginx/html`ディレクトリに`index.html`を作成します。 ```shell root@shell-demo:/# echo Hello shell demo > /usr/share/nginx/html/index.html