First Japanese l10n work for release-1.17 (#19871)

* update reference to 1.17 (#18791)

* update endpoint slices to beta (#18794)

* update feature gate to 1.17 (#18799)

* update feature gate to 1.17

* Update content/ja/docs/reference/command-line-tools-reference/feature-gates.md

Co-Authored-By: inductor <kohei.ota@zozo.com>

Co-authored-by: inductor <kohei.ota@zozo.com>

* Update links to ja docs (home/, tasks/tools/install-kubectl/, concepts/services-networking/service/) (#18930)

* update link to /ja/docs/home/

* update link to /ja/docs/tasks/tools/install-kubectl/

* update link to /ja/docs/concepts/services-networking/service/

* Translate tasks/administer-cluster/enabling-endpointslices.md in Japanese (#18140) (#18873)

* Translate tasks/administer-cluster/enabling-endpointslices.md in Japanese (#18140)

* Update enabling-endpointslices.md

* Update content/ja/docs/tasks/administer-cluster/enabling-endpointslices.md

Co-Authored-By: Naoki Oketani <okepy.naoki@gmail.com>

* Update content/ja/docs/tasks/administer-cluster/enabling-endpointslices.md

Co-Authored-By: Naoki Oketani <okepy.naoki@gmail.com>

* Update content/ja/docs/tasks/administer-cluster/enabling-endpointslices.md

Co-Authored-By: Naoki Oketani <okepy.naoki@gmail.com>

* Update content/ja/docs/tasks/administer-cluster/enabling-endpointslices.md

Co-Authored-By: Naoki Oketani <okepy.naoki@gmail.com>

* Update enabling-endpointslices.md

* Update enabling-endpointslices.md

* Update content/ja/docs/tasks/administer-cluster/enabling-endpointslices.md

Co-Authored-By: Takuya Tokuda <cs.toku.mail@gmail.com>

* Update content/ja/docs/tasks/administer-cluster/enabling-endpointslices.md

Co-Authored-By: Takuya Tokuda <cs.toku.mail@gmail.com>

* Update enabling-endpointslices.md

Co-authored-by: Naoki Oketani <okepy.naoki@gmail.com>
Co-authored-by: Takuya Tokuda <cs.toku.mail@gmail.com>

* update share process namespace (#19011)

* Revert trailing whitespaces (#18988)

* Correct a wrong resource name: Endpoint (#18954)

* Correct a wrong resource name: Endpoint

* Revert spaces at end of line

* Update links to ja docs (concepts/workloads/) (#18959)

* update link to /ja/docs/concepts/workloads/controllers/deployment/

* update link to /ja/docs/concepts/workloads/controllers/replicaset/

* update link to /ja/docs/concepts/workloads/controllers/statefulset/

* update link to /ja/docs/concepts/workloads/controllers/daemonset/

* update link to /ja/docs/concepts/workloads/pods/pod-overview/

* update link to /ja/docs/concepts/workloads/pods/pod/

* revert spaces at end of line

* revert spaces at end of line

* Replace links with redirect destination

* partially update link to /ja/docs/concepts/workloads/pods/pod-lifecycle/

* Update daemonset to 1.17 (#18793)

* update daemonset to 1.17

* Update content/ja/docs/concepts/workloads/controllers/daemonset.md

Co-Authored-By: Naoki Oketani <okepy.naoki@gmail.com>

* Update content/ja/docs/concepts/workloads/controllers/daemonset.md

Co-Authored-By: nasa9084 <nasa9084@users.noreply.github.com>

* apply review

Co-authored-by: Naoki Oketani <okepy.naoki@gmail.com>
Co-authored-by: nasa9084 <nasa9084@users.noreply.github.com>

* remove ctrl-h (#19067)

* remove reviewers block (#19091)

* update link to /ja/docs/tasks/tools/install-minikube/ (#19147)

* translate networking (#19134)

* translate networking

* apply review

* apply review

* Update content/ja/docs/concepts/cluster-administration/networking.md

Co-Authored-By: nasa9084 <nasa9084@users.noreply.github.com>

* nit

Co-authored-by: nasa9084 <nasa9084@users.noreply.github.com>

* update link to /ja/docs/concepts/overview/components/ (#19194)

* fix a wrong field name (#19256)

* update link to /ja/docs/concepts/configuration/assign-pod-node/ (#19324)

* Translate docs/concepts/storage/persistent-volumes.md into Japanese (#19074)

* translate content/ja/docs/concepts/storage/persistent-volumes.md into Japanese

* Update content/ja/docs/concepts/storage/persistent-volumes.md

translate title

Co-Authored-By: Naoki Oketani <okepy.naoki@gmail.com>

* Update content/ja/docs/concepts/storage/persistent-volumes.md

fix missing translation

Co-Authored-By: Naoki Oketani <okepy.naoki@gmail.com>

* Update content/ja/docs/concepts/storage/persistent-volumes.md

conform to translation style guide

Co-Authored-By: Naoki Oketani <okepy.naoki@gmail.com>

* conform to translation style guide

* Update content/ja/docs/concepts/storage/persistent-volumes.md

Co-Authored-By: bells17 <bells171@gmail.com>

* fix translation refer: https://github.com/kubernetes/website/pull/19074/files#r378950194

* fix translation

* fix translation ref: https://github.com/kubernetes/website/pull/19074#discussion_r378931787

* fix translation ref: https://github.com/kubernetes/website/pull/19074#discussion_r378829190

* Update content/ja/docs/concepts/storage/persistent-volumes.md

Co-Authored-By: Naoki Oketani <okepy.naoki@gmail.com>

* Update content/ja/docs/concepts/storage/persistent-volumes.md

Co-Authored-By: Naoki Oketani <okepy.naoki@gmail.com>

* Update content/ja/docs/concepts/storage/persistent-volumes.md

Co-Authored-By: Naoki Oketani <okepy.naoki@gmail.com>

* Update content/ja/docs/concepts/storage/persistent-volumes.md

Co-Authored-By: Naoki Oketani <okepy.naoki@gmail.com>

* Update content/ja/docs/concepts/storage/persistent-volumes.md

Co-Authored-By: Naoki Oketani <okepy.naoki@gmail.com>

* fix translation

* Update content/ja/docs/concepts/storage/persistent-volumes.md

Co-Authored-By: bells17 <bells171@gmail.com>

* Update content/ja/docs/concepts/storage/persistent-volumes.md

Co-Authored-By: bells17 <bells171@gmail.com>

* Update content/ja/docs/concepts/storage/persistent-volumes.md

Co-Authored-By: bells17 <bells171@gmail.com>

* Update content/ja/docs/concepts/storage/persistent-volumes.md

Co-Authored-By: Naoki Oketani <okepy.naoki@gmail.com>

* Update content/ja/docs/concepts/storage/persistent-volumes.md

Co-Authored-By: Naoki Oketani <okepy.naoki@gmail.com>

* Update content/ja/docs/concepts/storage/persistent-volumes.md

Co-Authored-By: Naoki Oketani <okepy.naoki@gmail.com>

* Update content/ja/docs/concepts/storage/persistent-volumes.md

Co-Authored-By: bells17 <bells171@gmail.com>

* Update content/ja/docs/concepts/storage/persistent-volumes.md

Co-Authored-By: bells17 <bells171@gmail.com>

* Update content/ja/docs/concepts/storage/persistent-volumes.md

Co-Authored-By: Naoki Oketani <okepy.naoki@gmail.com>

* fix translation follow https://github.com/kubernetes/website/pull/19074#discussion_r382130660

* Update content/ja/docs/concepts/storage/persistent-volumes.md

Co-Authored-By: Naoki Oketani <okepy.naoki@gmail.com>

* Update content/ja/docs/concepts/storage/persistent-volumes.md

Co-Authored-By: bells17 <bells171@gmail.com>

* Update content/ja/docs/concepts/storage/persistent-volumes.md

Co-Authored-By: bells17 <bells171@gmail.com>

* fix translation https://github.com/kubernetes/website/pull/19074#discussion_r378811021

* Update content/ja/docs/concepts/storage/persistent-volumes.md

Co-Authored-By: nasa9084 <nasa9084@users.noreply.github.com>

* Update content/ja/docs/concepts/storage/persistent-volumes.md

Co-Authored-By: Naoki Oketani <okepy.naoki@gmail.com>

* Update content/ja/docs/concepts/storage/persistent-volumes.md

Co-Authored-By: Naoki Oketani <okepy.naoki@gmail.com>

* Update content/ja/docs/concepts/storage/persistent-volumes.md

Co-Authored-By: bells17 <bells171@gmail.com>

* Update content/ja/docs/concepts/storage/persistent-volumes.md

Co-Authored-By: bells17 <bells171@gmail.com>

* Update content/ja/docs/concepts/storage/persistent-volumes.md

Co-Authored-By: bells17 <bells171@gmail.com>

* Update content/ja/docs/concepts/storage/persistent-volumes.md

Co-Authored-By: Naoki Oketani <okepy.naoki@gmail.com>

* Update content/ja/docs/concepts/storage/persistent-volumes.md

Co-Authored-By: nasa9084 <nasa9084@users.noreply.github.com>

* fix translation https://github.com/kubernetes/website/pull/19074/files#r380769175

* fix translation https://github.com/kubernetes/website/pull/19074#discussion_r380745506

* fix translation https://github.com/kubernetes/website/pull/19074#discussion_r381264848

Co-authored-by: Naoki Oketani <okepy.naoki@gmail.com>
Co-authored-by: bells17 <bells171@gmail.com>
Co-authored-by: nasa9084 <nasa9084@users.noreply.github.com>

* update link to /ja/docs/tutorials/hello-minikube/ and /ja/docs/concepts/architecture/nodes/ (#19515)

* Translate tasks/configure-pod-container/configure-projected-volume-storage.md into Japanese (#19240)

* copy from content/en/docs/tasks/configure-pod-container/configure-projected-volume-storage.md

Signed-off-by: Takuma Hashimoto <takumaxd+github@gmail.com>

* Translate content/ja/docs/tasks/configure-pod-container/configure-projected-volume-storage.md into Japanese

Signed-off-by: Takuma Hashimoto <takumaxd+github@gmail.com>

* fix translation

https://kubernetes.io/ja/docs/tasks/debug-application-cluster/get-shell-running-container/
にて、「シェルを取得する」という表現が用いられているため、そちらに合わせる

Signed-off-by: Takuma Hashimoto <takumaxd+github@gmail.com>

* fix terminology 投影 -> Projected (#19641)

* translate configure-access-multiple-clusters into Japanese (#19563)

* translate configure-access-multiple-clusters into Japanese

* reflect PR feedback

* Translate concepts/cluster-administration/cluster-administration-overview.md into Japanese #18829 (#19258)

* ja-trans: translate concepts/cluster-administration/cluster-administration-overview.md into Japanese (#18829)

* ja-trans: Improve Japanese translation in concepts/cluster-administration/cluster-administration-overview.md  (#18829)

* ja-trans: Improve Japanese translation in concepts/cluster-administration/cluster-administration-overview.md  (#18829)

* Translate tasks/service-catalog/install-service-catalog-using-helm/ in Japanese (#19776)

* issue 18957

* translate a reference file

* Update content/ja/docs/reference/glossary/service-catalog.md

Co-Authored-By: Naoki Oketani <okepy.naoki@gmail.com>

* Update content/ja/docs/reference/glossary/service-catalog.md

Co-Authored-By: Naoki Oketani <okepy.naoki@gmail.com>

* Update content/ja/docs/tasks/service-catalog/install-service-catalog-using-helm.md

Co-Authored-By: Naoki Oketani <okepy.naoki@gmail.com>

* Update content/ja/docs/tasks/service-catalog/install-service-catalog-using-helm.md

Co-Authored-By: Naoki Oketani <okepy.naoki@gmail.com>

* Update content/ja/docs/tasks/service-catalog/install-service-catalog-using-helm.md

Co-Authored-By: Naoki Oketani <okepy.naoki@gmail.com>

* Update content/ja/docs/tasks/service-catalog/install-service-catalog-using-helm.md

Co-Authored-By: Naoki Oketani <okepy.naoki@gmail.com>

* Update content/ja/docs/tasks/service-catalog/install-service-catalog-using-helm.md

Co-Authored-By: Naoki Oketani <okepy.naoki@gmail.com>

* Update content/ja/docs/tasks/service-catalog/install-service-catalog-using-helm.md

Co-Authored-By: Naoki Oketani <okepy.naoki@gmail.com>

* Update content/ja/docs/tasks/service-catalog/install-service-catalog-using-helm.md

Co-Authored-By: Naoki Oketani <okepy.naoki@gmail.com>

* Update content/ja/docs/tasks/service-catalog/install-service-catalog-using-helm.md

Co-Authored-By: Naoki Oketani <okepy.naoki@gmail.com>

* Update content/ja/docs/tasks/service-catalog/install-service-catalog-using-helm.md

Co-Authored-By: Naoki Oketani <okepy.naoki@gmail.com>

* Update content/ja/docs/tasks/service-catalog/install-service-catalog-using-helm.md

Co-Authored-By: Naoki Oketani <okepy.naoki@gmail.com>

* Update content/ja/docs/tasks/service-catalog/install-service-catalog-using-helm.md

Co-Authored-By: Naoki Oketani <okepy.naoki@gmail.com>

* Update content/ja/docs/tasks/service-catalog/install-service-catalog-using-helm.md

Co-Authored-By: Naoki Oketani <okepy.naoki@gmail.com>

* Update content/ja/docs/tasks/service-catalog/install-service-catalog-using-helm.md

Co-Authored-By: Naoki Oketani <okepy.naoki@gmail.com>

* Update content/ja/docs/tasks/service-catalog/install-service-catalog-using-helm.md

Co-Authored-By: Naoki Oketani <okepy.naoki@gmail.com>

* Apply suggestions from code review

Co-Authored-By: Tim Bannister <tim@scalefactory.com>

* Apply suggestions from code review

Co-Authored-By: Tim Bannister <tim@scalefactory.com>

Co-authored-by: Naoki Oketani <okepy.naoki@gmail.com>
Co-authored-by: inductor <kohei.ota@zozo.com>
Co-authored-by: Tim Bannister <tim@scalefactory.com>

* Fix dead link of api-conventions doc (#19801)

Co-authored-by: Naoki Oketani <okepy.naoki@gmail.com>
Co-authored-by: Jin Hase <hase.jin@jp.fujitsu.com>
Co-authored-by: Takuya Tokuda <cs.toku.mail@gmail.com>
Co-authored-by: nasa9084 <nasa9084@users.noreply.github.com>
Co-authored-by: Takahashi Tomohiko <takahashi@tomohiko.io>
Co-authored-by: bells17 <bells171@gmail.com>
Co-authored-by: Takuma Hashimoto <takumaxd+github@gmail.com>
Co-authored-by: Joe Kamibeppu <joekamibeppu@gmail.com>
Co-authored-by: Keita Akutsu <kakts.git@gmail.com>
Co-authored-by: SatoruItaya <44042909+SatoruItaya@users.noreply.github.com>
Co-authored-by: Tim Bannister <tim@scalefactory.com>
Co-authored-by: KoyamaSohei <koyamaso0309@gmail.com>
This commit is contained in:
inductor
2020-03-27 15:08:22 +09:00
committed by bryan
parent c4dc46b56f
commit 4b37fac15b
63 changed files with 1823 additions and 211 deletions
@@ -0,0 +1,335 @@
---
title: 複数のクラスターへのアクセスを設定する
content_template: templates/task
weight: 30
card:
name: tasks
weight: 40
---
{{% capture overview %}}
ここでは、設定ファイルを使って複数のクラスターにアクセスする方法を紹介します。クラスター、ユーザー、contextの情報を一つ以上の設定ファイルにまとめることで、`kubectl config use-context`のコマンドを使ってクラスターを素早く切り替えることができます。
{{< note >}}
クラスターへのアクセスを設定するファイルを、*kubeconfig* ファイルと呼ぶことがあります。これは設定ファイルの一般的な呼び方です。`kubeconfig`という名前のファイルが存在するわけではありません。
{{< /note >}}
{{% /capture %}}
{{% capture prerequisites %}}
{{< include "task-tutorial-prereqs.md" >}} {{< version-check >}}
{{% /capture %}}
{{% capture steps %}}
## クラスター、ユーザー、contextを設定する
例として、開発用のクラスターが一つ、実験用のクラスターが一つ、計二つのクラスターが存在する場合を考えます。`development`と呼ばれる開発用のクラスター内では、フロントエンドの開発者は`frontend`というnamespace内で、ストレージの開発者は`storage`というnamespace内で作業をします。`scratch`と呼ばれる実験用のクラスター内では、開発者はデフォルトのnamespaceで作業をするか、状況に応じて追加のnamespaceを作成します。開発用のクラスターは証明書を通しての認証を必要とします。実験用のクラスターはユーザーネームとパスワードを通しての認証を必要とします。
`config-exercise`というディレクトリを作成してください。`config-exercise`ディレクトリ内に、以下を含む`config-demo`というファイルを作成してください:
```shell
apiVersion: v1
kind: Config
preferences: {}
clusters:
- cluster:
name: development
- cluster:
name: scratch
users:
- name: developer
- name: experimenter
contexts:
- context:
name: dev-frontend
- context:
name: dev-storage
- context:
name: exp-scratch
```
設定ファイルには、クラスター、ユーザー、contextの情報が含まれています。上記の`config-demo`設定ファイルには、二つのクラスター、二人のユーザー、三つのcontextの情報が含まれています。
`config-exercise`ディレクトリに移動してください。クラスター情報を設定ファイルに追加するために、以下のコマンドを実行してください:
```shell
kubectl config --kubeconfig=config-demo set-cluster development --server=https://1.2.3.4 --certificate-authority=fake-ca-file
kubectl config --kubeconfig=config-demo set-cluster scratch --server=https://5.6.7.8 --insecure-skip-tls-verify
```
ユーザー情報を設定ファイルに追加してください:
```shell
kubectl config --kubeconfig=config-demo set-credentials developer --client-certificate=fake-cert-file --client-key=fake-key-seefile
kubectl config --kubeconfig=config-demo set-credentials experimenter --username=exp --password=some-password
```
{{< note >}}
`kubectl config unset users.<name>`を実行すると、ユーザーを削除することができます。
{{< /note >}}
context情報を設定ファイルに追加してください:
```shell
kubectl config --kubeconfig=config-demo set-context dev-frontend --cluster=development --namespace=frontend --user=developer
kubectl config --kubeconfig=config-demo set-context dev-storage --cluster=development --namespace=storage --user=developer
kubectl config --kubeconfig=config-demo set-context exp-scratch --cluster=scratch --namespace=default --user=experimenter
```
追加した情報を確認するために、`config-demo`ファイルを開いてください。`config-demo`ファイルを開く代わりに、`config view`のコマンドを使うこともできます。
```shell
kubectl config --kubeconfig=config-demo view
```
出力には、二つのクラスター、二人のユーザー、三つのcontextが表示されます:
```shell
apiVersion: v1
clusters:
- cluster:
certificate-authority: fake-ca-file
server: https://1.2.3.4
name: development
- cluster:
insecure-skip-tls-verify: true
server: https://5.6.7.8
name: scratch
contexts:
- context:
cluster: development
namespace: frontend
user: developer
name: dev-frontend
- context:
cluster: development
namespace: storage
user: developer
name: dev-storage
- context:
cluster: scratch
namespace: default
user: experimenter
name: exp-scratch
current-context: ""
kind: Config
preferences: {}
users:
- name: developer
user:
client-certificate: fake-cert-file
client-key: fake-key-file
- name: experimenter
user:
password: some-password
username: exp
```
上記の`fake-ca-file``fake-cert-file``fake-key-file`は、証明書ファイルの実際のパスのプレースホルダーです。環境内にある証明書ファイルの実際のパスに変更してください。
証明書ファイルのパスの代わりにbase64にエンコードされたデータを使用したい場合は、キーに`-data`の接尾辞を加えてください。例えば、`certificate-authority-data``client-certificate-data``client-key-data`とできます。
それぞれのcontextは、クラスター、ユーザー、namespaceの三つ組からなっています。例えば、`dev-frontend`contextは、`developer`ユーザーの認証情報を使って`development`クラスターの`frontend`namespaceへのアクセスを意味しています。
現在のcontextを設定してください:
```shell
kubectl config --kubeconfig=config-demo use-context dev-frontend
```
これ以降実行される`kubectl`コマンドは、`dev-frontend`contextに設定されたクラスターとnamespaceに適用されます。また、`dev-frontend`contextに設定されたユーザーの認証情報を使用します。
現在のcontextの設定情報のみを確認するには、`--minify`フラグを使用してください。
```shell
kubectl config --kubeconfig=config-demo view --minify
```
出力には、`dev-frontend`contextの設定情報が表示されます:
```shell
apiVersion: v1
clusters:
- cluster:
certificate-authority: fake-ca-file
server: https://1.2.3.4
name: development
contexts:
- context:
cluster: development
namespace: frontend
user: developer
name: dev-frontend
current-context: dev-frontend
kind: Config
preferences: {}
users:
- name: developer
user:
client-certificate: fake-cert-file
client-key: fake-key-file
```
今度は、実験用のクラスター内でしばらく作業する場合を考えます。
現在のcontextを`exp-scratch`に切り替えてください:
```shell
kubectl config --kubeconfig=config-demo use-context exp-scratch
```
これ以降実行される`kubectl`コマンドは、`scratch`クラスター内のデフォルトnamespaceに適用されます。また、`exp-scratch`contextに設定されたユーザーの認証情報を使用します。
新しく切り替えた`exp-scratch`contextの設定を確認してください。
```shell
kubectl config --kubeconfig=config-demo view --minify
```
最後に、`development`クラスター内の`storage`namespaceでしばらく作業する場合を考えます。
現在のcontextを`dev-storage`に切り替えてください:
```shell
kubectl config --kubeconfig=config-demo use-context dev-storage
```
新しく切り替えた`dev-storage`contextの設定を確認してください。
```shell
kubectl config --kubeconfig=config-demo view --minify
```
## 二つ目の設定ファイルを作成する
`config-exercise`ディレクトリ内に、以下を含む`config-demo-2`というファイルを作成してください:
```shell
apiVersion: v1
kind: Config
preferences: {}
contexts:
- context:
cluster: development
namespace: ramp
user: developer
name: dev-ramp-up
```
上記の設定ファイルは、`dev-ramp-up`というcontextを表します。
## KUBECONFIG環境変数を設定する
`KUBECONFIG`という環境変数が存在するかを確認してください。もし存在する場合は、後で復元できるようにバックアップしてください。例えば:
### Linux
```shell
export KUBECONFIG_SAVED=$KUBECONFIG
```
### Windows PowerShell
```shell
$Env:KUBECONFIG_SAVED=$ENV:KUBECONFIG
```
`KUBECONFIG`環境変数は、設定ファイルのパスのリストです。リスト内のパスはLinuxとMacではコロンで区切られ、Windowsではセミコロンで区切られます。`KUBECONFIG`環境変数が存在する場合は、リスト内の設定ファイルの内容を確認してください。
一時的に`KUBECONFIG`環境変数に以下の二つのパスを追加してください。例えば:<br>
### Linux
```shell
export KUBECONFIG=$KUBECONFIG:config-demo:config-demo-2
```
### Windows PowerShell
```shell
$Env:KUBECONFIG=("config-demo;config-demo-2")
```
`config-exercise`ディレクトリ内から、以下のコマンドを実行してください:
```shell
kubectl config view
```
出力には、`KUBECONFIG`環境変数に含まれる全てのファイルの情報がまとめて表示されます。`config-demo-2`ファイルに設定された`dev-ramp-up`contextの情報と、`config-demo`ファイルに設定された三つのcontextの情報がまとめてあることに注目してください:
```shell
contexts:
- context:
cluster: development
namespace: frontend
user: developer
name: dev-frontend
- context:
cluster: development
namespace: ramp
user: developer
name: dev-ramp-up
- context:
cluster: development
namespace: storage
user: developer
name: dev-storage
- context:
cluster: scratch
namespace: default
user: experimenter
name: exp-scratch
```
kubeconfigファイルに関するさらなる情報を参照するには、[kubeconfigファイルを使ってクラスターへのアクセスを管理する](/docs/concepts/configuration/organize-cluster-access-kubeconfig/)を参照してください。
## $HOME/.kubeディレクトリの内容を確認する
既にクラスターを所持していて、`kubectl`を使ってクラスターを操作できる場合は、`$HOME/.kube`ディレクトリ内に`config`というファイルが存在する可能性が高いです。
`$HOME/.kube`に移動して、そこに存在するファイルを確認してください。`config`という設定ファイルが存在するはずです。他の設定ファイルも存在する可能性があります。全てのファイルの中身を確認してください。
## $HOME/.kube/configをKUBECONFIG環境変数に追加する
もし`$HOME/.kube/config`ファイルが存在していて、既に`KUBECONFIG`環境変数に追加されていない場合は、`KUBECONFIG`環境変数に追加してください。例えば:
### Linux
```shell
export KUBECONFIG=$KUBECONFIG:$HOME/.kube/config
```
### Windows Powershell
```shell
$Env:KUBECONFIG=($Env:KUBECONFIG;$HOME/.kube/config)
```
`KUBECONFIG`環境変数内のファイルからまとめられた設定情報を確認してください。`config-exercise`ディレクトリ内から、以下のコマンドを実行してください:
```shell
kubectl config view
```
## クリーンアップ
`KUBECONFIG`環境変数を元に戻してください。例えば:
Linux:
```shell
export KUBECONFIG=$KUBECONFIG_SAVED
```
Windows PowerShell
```shell
$Env:KUBECONFIG=$ENV:KUBECONFIG_SAVED
```
{{% /capture %}}
{{% capture whatsnext %}}
* [kubeconfigファイルを使ってクラスターへのアクセスを管理する](/docs/concepts/configuration/organize-cluster-access-kubeconfig/)
* [kubectl config](/docs/reference/generated/kubectl/kubectl-commands#config)
{{% /capture %}}
@@ -27,7 +27,7 @@ weight: 70
* {{< include "task-tutorial-prereqs.md" >}} {{< version-check >}}
* このタスクでは[Serviceで外部ロードバランサー](/docs/tasks/access-application-cluster/create-external-load-balancer/)を使用しますが、外部ロードバランサーの使用がサポートされている環境である必要があります。
ご使用の環境がこれをサポートしていない場合は、代わりにタイプ[NodePort](/docs/concepts/services-networking/service/#nodeport)のServiceを使用できます。
ご使用の環境がこれをサポートしていない場合は、代わりにタイプ[NodePort](/ja/docs/concepts/services-networking/service/#nodeport)のServiceを使用できます。
{{% /capture %}}
@@ -189,8 +189,8 @@ curl http://${EXTERNAL_IP} # これを前に見たEXTERNAL-IPに置き換えま
{{% capture whatsnext %}}
* [Services](/docs/concepts/services-networking/service/)の詳細
* [ConfigMaps](/docs/tasks/configure-pod-container/configure-pod-configmap/)の詳細
* [Service](/ja/docs/concepts/services-networking/service/)の詳細
* [ConfigMap](/docs/tasks/configure-pod-container/configure-pod-configmap/)の詳細
{{% /capture %}}
@@ -37,7 +37,7 @@ weight: 60
kubectl run hello-world --replicas=2 --labels="run=load-balancer-example" --image=gcr.io/google-samples/node-hello:1.0 --port=8080
```
このコマンドは
[Deployment](/docs/concepts/workloads/controllers/deployment/)
[Deployment](/ja/docs/concepts/workloads/controllers/deployment/)
オブジェクトとそれに紐付く
[ReplicaSet](/ja/docs/concepts/workloads/controllers/replicaset/)
オブジェクトを作成します。ReplicaSetは、Hello Worldアプリケーションが稼働している2つの
@@ -115,7 +115,7 @@ weight: 60
## service configuration fileの利用
`kubectl expose`コマンドの代わりに、
[service configuration file](/docs/concepts/services-networking/service/)
[service configuration file](/ja/docs/concepts/services-networking/service/)
を使用してServiceを作成することもできます。
{{% /capture %}}
@@ -0,0 +1,44 @@
---
title: EndpointSliceの有効化
content_template: templates/task
---
{{% capture overview %}}
このページはKubernetesのEndpointSliceの有効化の概要を説明します。
{{% /capture %}}
{{% capture prerequisites %}}
{{< include "task-tutorial-prereqs.md" >}} {{< version-check >}}
{{% /capture %}}
{{% capture steps %}}
## 概要
EndpointSliceは、KubernetesのEndpointsに対してスケーラブルで拡張可能な代替手段を提供します。Endpointsが提供する機能のベースの上に構築し、スケーラブルな方法で拡張します。Serviceが多数(100以上)のネットワークエンドポイントを持つ場合、それらは単一の大きなEndpointsリソースではなく、複数の小さなEndpointSliceに分割されます。
## EndpointSliceの有効化
{{< feature-state for_k8s_version="v1.17" state="beta" >}}
{{< note >}}
EndpointSliceは、最終的には既存のEndpointsを置き換える可能性がありますが、多くのKubernetesコンポーネントはまだ既存のEndpointsに依存しています。現時点ではEndpointSliceを有効化することは、Endpointsの置き換えではなく、クラスター内のEndpointsへの追加とみなされる必要があります。
{{< /note >}}
EndpointSliceはベータ版の機能とみなされますが、デフォルトではAPIのみが有効です。kube-proxyによるEndpointSliceコントローラーとEndpointSliceの使用は、デフォルトでは有効になっていません。
EndpointSliceコントローラーはクラスター内にEndpointSliceを作成し、管理します。これは、{{< glossary_tooltip text="kube-apiserver" term_id="kube-apiserver" >}}と{{< glossary_tooltip text="kube-controller-manager" term_id="kube-controller-manager" >}}の`EndpointSlice`の[フィーチャーゲート](/docs/reference/command-line-tools-reference/feature-gates/)で有効にできます(`--feature-gates=EndpointSlice=true`)。
スケーラビリティ向上のため、{{<glossary_tooltip text="kube-proxy" term_id="kube-proxy" >}}でフィーチャーゲートを有効にして、Endpointsの代わりにEndpointSliceをデータソースとして使用することもできます。
## EndpointSliceの使用
クラスター内でEndpointSliceを完全に有効にすると、各Endpointsリソースに対応するEndpointSliceリソースが表示されます。既存のEndpointsの機能をサポートすることに加えて、EndpointSliceはトポロジーなどの新しい情報を含める必要があります。これらにより、クラスター内のネットワークエンドポイントのスケーラビリティと拡張性が大きく向上します。
{{% capture whatsnext %}}
* [EndpointSlice](/docs/concepts/services-networking/endpoint-slices/)を参照してください。
* [サービスとアプリケーションの接続](/ja/docs/concepts/services-networking/connect-applications-service/)を参照してください。
{{% /capture %}}
@@ -0,0 +1,81 @@
---
title: ストレージにProjectedボリュームを使用するようPodを設定する
content_template: templates/task
weight: 70
---
{{% capture overview %}}
このページでは、[`projected`](/docs/concepts/storage/volumes/#projected)(投影)ボリュームを使用して、既存の複数のボリュームソースを同一ディレクトリ内にマウントする方法を説明します。
現在、`secret``configMap``downwardAPI`および`serviceAccountToken`ボリュームを投影できます。
{{< note >}}
`serviceAccountToken`はボリュームタイプではありません。
{{< /note >}}
{{% /capture %}}
{{% capture prerequisites %}}
{{< include "task-tutorial-prereqs.md" >}} {{< version-check >}}
{{% /capture %}}
{{% capture steps %}}
## ProjectedボリュームをPodに設定する
この課題では、ローカルファイルからユーザーネームおよびパスワードの{{< glossary_tooltip text="Secret" term_id="secret" >}}を作成します。
次に、単一のコンテナを実行するPodを作成し、[`projected`](/docs/concepts/storage/volumes/#projected)ボリュームを使用してそれぞれのSecretを同じ共有ディレクトリにマウントします。
以下にPodの設定ファイルを示します:
{{< codenew file="pods/storage/projected.yaml" >}}
1. Secretを作成します:
```shell
# ユーザーネームおよびパスワードを含むファイルを作成します:
echo -n "admin" > ./username.txt
echo -n "1f2d1e2e67df" > ./password.txt
# これらのファイルからSecretを作成します:
kubectl create secret generic user --from-file=./username.txt
kubectl create secret generic pass --from-file=./password.txt
```
1. Podを作成します:
```shell
kubectl apply -f https://k8s.io/examples/pods/storage/projected.yaml
```
1. Pod内のコンテナが実行されていることを確認するため、Podの変更を監視します:
```shell
kubectl get --watch pod test-projected-volume
```
出力は次のようになります:
```
NAME READY STATUS RESTARTS AGE
test-projected-volume 1/1 Running 0 14s
```
1. 別の端末にて、実行中のコンテナへのシェルを取得します:
```shell
kubectl exec -it test-projected-volume -- /bin/sh
```
1. シェル内にて、投影されたソースを含む`projected-volume`ディレクトリが存在することを確認します:
```shell
ls /projected-volume/
```
## クリーンアップ
PodおよびSecretを削除します:
```shell
kubectl delete pod test-projected-volume
kubectl delete secret user pass
```
{{% /capture %}}
{{% capture whatsnext %}}
* [`projected`](/docs/concepts/storage/volumes/#projected)ボリュームについてさらに学ぶ
* [all-in-oneボリューム](https://github.com/kubernetes/community/blob/{{< param "githubbranch" >}}/contributors/design-proposals/node/all-in-one-volume.md)のデザインドキュメントを読む
{{% /capture %}}
@@ -7,7 +7,7 @@ weight: 160
{{% capture overview %}}
{{< feature-state state="beta" >}}
{{< feature-state state="stable" for_k8s_version="v1.17" >}}
このページでは、プロセス名前空間を共有するPodを構成する方法を示します。
プロセス名前空間の共有が有効になっている場合、コンテナ内のプロセスは、そのPod内の他のすべてのコンテナに表示されます。
@@ -20,9 +20,6 @@ weight: 160
{{< include "task-tutorial-prereqs.md" >}} {{< version-check >}}
プロセス名前空間の共有は**ベータ**機能であり、デフォルトで有効になっています。
`--feature-gates=PodShareProcessNamespace=false`を設定することで無効にできます。
{{% /capture %}}
{{% capture steps %}}
@@ -13,7 +13,7 @@ content_template: templates/task
{{< include "task-tutorial-prereqs.md" >}} {{< version-check >}}
* [Pod](/docs/concepts/workloads/pods/pod/)と[Podのライフサイクル](/docs/concepts/workloads/pods/pod-lifecycle/)の基本を理解している必要があります。
* [Pod](/ja/docs/concepts/workloads/pods/pod/)と[Podのライフサイクル](/ja/docs/concepts/workloads/pods/pod-lifecycle/)の基本を理解している必要があります。
{{% /capture %}}
@@ -329,7 +329,7 @@ kubectl get service hostnames -o json
* `targetPort`を名前で定義しようとしている場合、`Pod`は同じ名前でポートを公開していますか?
* ポートの`protocol``Pod`のものと同じですか?
## ServiceにEndpointがあるか?
## ServiceにEndpointsがあるか?
ここまで来たということは、`Service`は存在し、DNSによって名前解決できることが確認できているでしょう。
ここでは、実行した`Pod``Service`によって実際に選択されていることを確認しましょう。
@@ -347,7 +347,7 @@ hostnames-yp2kp 1/1 Running 0 1h
"AGE"列は、これらの`Pod`が約1時間前のものであることを示しており、それらが正常に実行され、クラッシュしていないことを意味します。
`-l app=hostnames`引数はラベルセレクターで、ちょうど私たちの`Service`に定義されているものと同じです。
Kubernetesシステム内には、すべての`Service`のセレクターを評価し、結果を`Endpoint`オブジェクトに保存するコントロールループがあります。
Kubernetesシステム内には、すべての`Service`のセレクターを評価し、結果を`Endpoints`オブジェクトに保存するコントロールループがあります。
```shell
kubectl get endpoints hostnames
@@ -355,7 +355,7 @@ NAME ENDPOINTS
hostnames 10.244.0.5:9376,10.244.0.6:9376,10.244.0.7:9376
```
これにより、Endpointコントローラーが`Service`の正しい`Pod`を見つけていることを確認できます。
これにより、Endpointsコントローラーが`Service`の正しい`Pod`を見つけていることを確認できます。
`hostnames`行が空白の場合、`Service``spec.selector`フィールドが実際に`Pod``metadata.labels`値を選択していることを確認する必要があります。
よくある間違いは、タイプミスまたは他のエラー、たとえば`Service``run=hostnames`を選択しているのに`Deployment``app=hostnames`を指定していることです。
@@ -379,7 +379,7 @@ u@pod$ wget -qO- 10.244.0.7:9376
hostnames-yp2kp
```
`Endpoint`リスト内の各`Pod`は、それぞれの自身のホスト名を返すはずです。
`Endpoints`リスト内の各`Pod`は、それぞれの自身のホスト名を返すはずです。
そうならない(または、あなた自身の`Pod`の正しい振る舞いにならない)場合は、そこで何が起こっているのかを調査する必要があります。
`kubectl logs`が役立つかもしれません。あるいは、`kubectl exec`で直接`Pod`にアクセスし、そこでサービスをチェックしましょう。
@@ -398,7 +398,7 @@ hostnames-632524106-tlaok 1/1 Running 0 2m
## kube-proxyは機能しているか?
ここに到達したのなら、`Service`は実行され、`Endpoint`があり、`Pod`が実際にサービスを提供しています。
ここに到達したのなら、`Service`は実行され、`Endpoints`があり、`Pod`が実際にサービスを提供しています。
この時点で、`Service`のプロキシーメカニズム全体が疑わしいです。
ひとつひとつ確認しましょう。
@@ -579,7 +579,7 @@ UP BROADCAST RUNNING PROMISC MULTICAST MTU:1460 Metric:1
## 助けを求める
ここまでたどり着いたということは、とてもおかしなことが起こっています。
`Service`は実行中で、`Endpoint`があり、`Pod`は実際にサービスを提供しています。
`Service`は実行中で、`Endpoints`があり、`Pod`は実際にサービスを提供しています。
DNSは動作していて、`iptables`ルールがインストールされていて、`kube-proxy`も誤動作していないようです。
それでも、あなたの`Service`は機能していません。
おそらく私たちにお知らせ頂いた方がよいでしょう。調査をお手伝いします!
@@ -8,7 +8,7 @@ weight: 30
このページでは、[StatefulSet](/ja/docs/concepts/workloads/controllers/statefulset/)
コントローラーを使用して、レプリカを持つステートフルアプリケーションを実行する方法を説明します。
ここでの例は、非同期レプリケーションを行う複数のスレーブを持つ、単一マスターのMySQLです。
ここでの例は、非同期レプリケーションを行う複数のスレーブを持つ、単一マスターのMySQLです。
**この例は本番環境向けの構成ではない**ことに注意してください。
具体的には、MySQLの設定が安全ではないデフォルトのままとなっています。
@@ -23,7 +23,7 @@ weight: 30
* このチュートリアルは、あなたが[PersistentVolume](/docs/concepts/storage/persistent-volumes/)
と[StatefulSet](/ja/docs/concepts/workloads/controllers/statefulset/)、
さらには[Pod](/ja/docs/concepts/workloads/pods/pod/)、
[Service](/docs/concepts/services-networking/service/)、
[Service](/ja/docs/concepts/services-networking/service/)、
[ConfigMap](/docs/tasks/configure-pod-container/configure-pod-configmap/)などの
他のコアな概念に精通していることを前提としています。
* MySQLに関する知識は記事の理解に役立ちますが、
@@ -76,7 +76,7 @@ kubectl apply -f https://k8s.io/examples/application/mysql/mysql-services.yaml
{{< codenew file="application/mysql/mysql-services.yaml" >}}
ヘッドレスサービスは、StatefulSetコントローラーが
StatefulSetの一部であるPodごとに作成するDNSエントリーのベースエントリーを提供します。
StatefulSetの一部であるPodごとに作成するDNSエントリーのベースエントリーを提供します。
この例ではヘッドレスサービスの名前は`mysql`なので、同じKubernetesクラスタの
同じ名前空間内の他のPodは、`<pod-name>.mysql`を名前解決することでPodにアクセスできます。
@@ -168,9 +168,9 @@ PersistentVolumeを手動でプロビジョニングした場合は、Persistent
{{% capture whatsnext %}}
* [Deploymentオブジェクト](/docs/concepts/workloads/controllers/deployment/)についてもっと学ぶ
* [Deploymentオブジェクト](/ja/docs/concepts/workloads/controllers/deployment/)についてもっと学ぶ
* [アプリケーションのデプロイ](/docs/user-guide/deploying-applications/)についてもっと学ぶ
* [アプリケーションのデプロイ](/ja/docs/tasks/run-application/run-stateless-application-deployment/)についてもっと学ぶ
* [kubectl runのドキュメント](/docs/reference/generated/kubectl/kubectl-commands/#run)
@@ -143,7 +143,7 @@ Deploymentを名前を指定して削除します:
{{% capture whatsnext %}}
* [Deploymentオブジェクト](/docs/concepts/workloads/controllers/deployment/)の詳細
* [Deploymentオブジェクト](/ja/docs/concepts/workloads/controllers/deployment/)の詳細
{{% /capture %}}
@@ -0,0 +1,116 @@
---
title: Helmを使用したサービスカタログのインストール
content_template: templates/task
---
{{% capture overview %}}
{{< glossary_definition term_id="service-catalog" length="all" prepend="サービスカタログは" >}}
[Helm](https://helm.sh/)を使用してKubernetesクラスターにサービスカタログをインストールします。手順の最新情報は[kubernetes-sigs/service-catalog](https://github.com/kubernetes-sigs/service-catalog/blob/master/docs/install.md)リポジトリーを参照してください。
{{% /capture %}}
{{% capture prerequisites %}}
* [サービスカタログ](/docs/concepts/service-catalog/)の基本概念を理解してください。
* サービスカタログを使用するには、Kubernetesクラスターのバージョンが1.7以降である必要があります。
* KubernetesクラスターのクラスターDNSを有効化する必要があります。
* クラウド上のKubernetesクラスター、または{{< glossary_tooltip text="Minikube" term_id="minikube" >}}を使用している場合、クラスターDNSはすでに有効化されています。
* `hack/local-up-cluster.sh`を使用している場合は、環境変数`KUBE_ENABLE_CLUSTER_DNS`が設定されていることを確認し、インストールスクリプトを実行してください。
* [kubectlのインストールおよびセットアップ](/ja/docs/tasks/tools/install-kubectl/)を参考に、v1.7以降のkubectlをインストールし、設定を行ってください。
* v2.7.0以降の[Helm](http://helm.sh/)をインストールしてください。
* [Helm install instructions](https://helm.sh/docs/intro/install/)を参考にしてください。
* 上記のバージョンのHelmをすでにインストールしている場合は、`helm init`を実行し、HelmのサーバーサイドコンポーネントであるTillerをインストールしてください。
{{% /capture %}}
{{% capture steps %}}
## Helmリポジトリーにサービスカタログを追加
Helmをインストールし、以下のコマンドを実行することでローカルマシンに*service-catalog*のHelmリポジトリーを追加します。
```shell
helm repo add svc-cat https://svc-catalog-charts.storage.googleapis.com
```
以下のコマンドを実行し、インストールに成功していることを確認します。
```shell
helm search service-catalog
```
インストールが成功していれば、出力は以下のようになります:
```
NAME CHART VERSION APP VERSION DESCRIPTION
svc-cat/catalog 0.2.1 service-catalog API server and controller-manager helm chart
svc-cat/catalog-v0.2 0.2.2 service-catalog API server and controller-manager helm chart
```
## RBACの有効化
KubernetesクラスターのRBACを有効化することで、Tiller Podに`cluster-admin`アクセスを持たせます。
v0.25以前のMinikubeを使用している場合は、明示的にRBACを有効化して起動する必要があります:
```shell
minikube start --extra-config=apiserver.Authorization.Mode=RBAC
```
v0.26以降のMinikubeを使用している場合は、以下のコマンドを実行してください。
```shell
minikube start
```
v0.26以降のMinikubeを使用している場合、`--extra-config`を指定しないでください。
このフラグは--extra-config=apiserver.authorization-modeを指定するものに変更されており、現在MinikubeではデフォルトでRBACが有効化されています。
古いフラグを指定すると、スタートコマンドが応答しなくなることがあります。
`hack/local-up-cluster.sh`を使用している場合、環境変数`AUTHORIZATION_MODE`を以下の値に設定してください:
```
AUTHORIZATION_MODE=Node,RBAC hack/local-up-cluster.sh -O
```
`helm init`は、デフォルトで`kube-system`のnamespaceにTiller Podをインストールし、Tillerは`default`のServiceAccountを使用するように設定されています。
{{< note >}}
`helm init`を実行する際に`--tiller-namespace`または`--service-account`のフラグを使用する場合、以下のコマンドの`--serviceaccount`フラグには適切なnamespaceとServiceAccountを指定する必要があります。
{{< /note >}}
Tillerに`cluster-admin`アクセスを設定する場合:
```shell
kubectl create clusterrolebinding tiller-cluster-admin \
--clusterrole=cluster-admin \
--serviceaccount=kube-system:default
```
## Kubernetesクラスターにサービスカタログをインストール
以下のコマンドを使用して、Helmリポジトリーのrootからサービスカタログをインストールします:
{{< tabs name="helm-versions" >}}
{{% tab name="Helm バージョン3" %}}
```shell
helm install catalog svc-cat/catalog --namespace catalog
```
{{% /tab %}}
{{% tab name="Helm バージョン2" %}}
```shell
helm install svc-cat/catalog --name catalog --namespace catalog
```
{{% /tab %}}
{{< /tabs >}}
{{% /capture %}}
{{% capture whatsnext %}}
* [sample service brokers](https://github.com/openservicebrokerapi/servicebroker/blob/master/gettingStarted.md#sample-service-brokers)
* [kubernetes-sigs/service-catalog](https://github.com/kubernetes-sigs/service-catalog)
{{% /capture %}}
@@ -18,7 +18,7 @@ kubectlのバージョンは、クラスターのマイナーバージョンと
{{% capture steps %}}
## Linuxへkubectlをインストールする
## Linuxへkubectlをインストールする {#install-kubectl-on-linux}
### curlを使用してLinuxへkubectlのバイナリをインストールする
@@ -97,7 +97,7 @@ kubectl version
{{< /tab >}}
{{< /tabs >}}
## macOSへkubectlをインストールする
## macOSへkubectlをインストールする {#install-kubectl-on-macos}
### curlを使用してmacOSへkubectlのバイナリをインストールする
@@ -170,7 +170,7 @@ macOSで[MacPorts](https://macports.org/)パッケージマネージャーを使
kubectl version
```
## Windowsへkubectlをインストールする
## Windowsへkubectlをインストールする {#install-kubectl-on-windows}
### curlを使用してWindowsへkubectlのバイナリをインストールする
@@ -467,7 +467,7 @@ compinit
{{% /capture %}}
{{% capture whatsnext %}}
* [Minikubeをインストールする](/docs/tasks/tools/install-minikube/)
* [Minikubeをインストールする](/ja/docs/tasks/tools/install-minikube/)
* クラスターの作成に関する詳細を[スタートガイド](/docs/setup/)で確認する
* [アプリケーションを起動して公開する方法を学ぶ](/docs/tasks/access-application-cluster/service-access-application-cluster/)
* あなたが作成していないクラスターにアクセスする必要がある場合は、[クラスターアクセスドキュメントの共有](/docs/tasks/access-application-cluster/configure-access-multiple-clusters/)を参照してください
@@ -65,7 +65,7 @@ Hyper-V Requirements: A hypervisor has been detected. Features required for
### kubectlのインストール
kubectlがインストールされていることを確認してください。
[kubectlのインストールとセットアップ](/docs/tasks/tools/install-kubectl/#install-kubectl-on-linux)の指示に従ってkubectlをインストールできます。
[kubectlのインストールとセットアップ](/ja/docs/tasks/tools/install-kubectl/#install-kubectl-on-linux)の指示に従ってkubectlをインストールできます。
### ハイパーバイザーのインストール
@@ -110,7 +110,7 @@ sudo install minikube /usr/local/bin/
### kubectlのインストール
kubectlがインストールされていることを確認してください。
[kubectlのインストールとセットアップ](/docs/tasks/tools/install-kubectl/#install-kubectl-on-macos)の指示に従ってkubectlをインストールできます。
[kubectlのインストールとセットアップ](/ja/docs/tasks/tools/install-kubectl/#install-kubectl-on-macos)の指示に従ってkubectlをインストールできます。
### ハイパーバイザーのインストール
@@ -147,7 +147,7 @@ sudo mv minikube /usr/local/bin
### kubectlのインストール
kubectlがインストールされていることを確認してください。
[kubectlのインストールとセットアップ](/docs/tasks/tools/install-kubectl/#install-kubectl-on-windows)の指示に従ってkubectlをインストールできます。
[kubectlのインストールとセットアップ](/ja/docs/tasks/tools/install-kubectl/#install-kubectl-on-windows)の指示に従ってkubectlをインストールできます。
### ハイパーバイザーのインストール