Change:
### プライベートレジストリへの認証をNodeに設定する <del> Node上でDockerを実行している場合、プライベートコンテナレジストリへの認証をDockerコンテナランタイムに設定できます。 </del> <ins> 認証情報を設定するための具体的な手順は、使用するコンテナランタイムとレジストリに依存します。最も正確な情報として、ソリューションのドキュメントを参照する必要があります。 </ins> <del> Node構成を制御できる場合は、この方法が適しています。 {{< note >}} KubernetesはDocker構成の`auths`と`HttpHeaders`セクションのみをサポートしています。 Docker認証情報ヘルパー(`credHelpers`または`credsStore`)はサポートされていません。 {{< /note >}} </del> <ins> プライベートなコンテナイメージレジストリを設定する例として、[プライベートレジストリからイメージをPullする](/docs/tasks/configure-pod-container/pull-image-private-registry)タスクを参照してください。その例では、Docker Hubのプライベートレジストリを使用しています。 </ins> <del> Dockerは、`$HOME/.dockercfg`または`$HOME/.docker/config.json`ファイルの中に、プライベートレジストリのキーを保持します。 下記リストの検索パスに同じファイルを配置した場合、kubeletはイメージをPullする時に認証情報プロバイダーとして利用します。 </del> <ins> ### config.jsonの解釈 {#config-json} `config.json`の解釈は、Dockerのオリジナルの実装とKubernetesの解釈で異なります。 Dockerでは、`auths`キーはルートURLしか指定できませんが、Kubernetesではプレフィックスのマッチしたパスだけでなく、グロブパターンのURLも指定できます。 以下のような`config.json`が有効であるということです。 </ins> <del> * `{--root-dir:-/var/lib/kubelet}/config.json` * `{cwd of kubelet}/config.json` * `${HOME}/.docker/config.json` * `/.docker/config.json` * `{--root-dir:-/var/lib/kubelet}/.dockercfg` * `{cwd of kubelet}/.dockercfg` * `${HOME}/.dockercfg` * `/.dockercfg` {{< note >}} kubeletプロセスの環境では、明示的に`HOME=/root`を設定する必要がある場合があります。 {{< /note >}} 以下は、プライベートレジストリを使用する為にNodeを構成する推奨の手順です。この例では、デスクトップ/ノートPC上で実行します。 1. 使用したい認証情報のセット毎に `docker login [server]`を実行する。これであなたのPC上の`$HOME/.docker/config.json`が更新される 1. 使用したい認証情報が含まれているかを確認するため、エディターで`$HOME/.docker/config.json`を見る 1. Nodeの一覧を取得 例: - 名称が必要な場合: `nodes=$( kubectl get nodes -o jsonpath='{range.items[*].metadata}{.name} {end}' )` - IPアドレスを取得したい場合: `nodes=$( kubectl get nodes -o jsonpath='{range .items[*].status.addresses[?(@.type=="ExternalIP")]}{.address} {end}' )` 1. ローカルの`.docker/config.json`を上記の検索パスのいずれかにコピーする - 例えば、これでテストを実施する: `for n in $nodes; do scp ~/.docker/config.json root@"$n":/var/lib/kubelet/config.json; done` {{< note >}} 本番環境用クラスターでは、構成管理ツールを使用して必要なすべてのNodeに設定を反映してください。 {{< /note >}} プライベートイメージを使用するPodを作成し確認します。 例: ```shell kubectl apply -f - <<EOF apiVersion: v1 kind: Pod metadata: name: private-image-test-1 spec: containers: - name: uses-private-image image: $PRIVATE_IMAGE_NAME imagePullPolicy: Always command: [ "echo", "SUCCESS" ] EOF ``` ``` pod/private-image-test-1 created </del> <ins> ```json { "auths": { "*my-registry.io/images": { "auth": "…" } } } </ins> ``` <del> すべてが機能している場合は、しばらくしてから以下のコマンドを実行します。 </del> <ins> ルートURL(`*my-registry.io`)は、以下の構文でマッチングされます: </ins> <del> ```shell kubectl logs private-image-test-1 </del> ``` <del> コマンドの結果を確認してください。 ``` SUCCESS </del> <ins> pattern: { term } term: '*'         セパレーター以外の任意の文字列にマッチする '?'         セパレーター以外の任意の一文字にマッチする '[' [ '^' ] { character-range } ']' 文字クラス (空であってはならない) c           文字 c とマッチする (c != '*', '?', '', '[') '' c      文字 c とマッチする character-range: c           文字 c とマッチする (c != '', '-', ']') '' c      文字 c とマッチする lo '-' hi   lo <= c <= hi の文字 c とマッチする </ins> ``` <del> コマンドが失敗したと思われる場合には、以下を実行します。 ```shell kubectl describe pods/private-image-test-1 | grep 'Failed' ``` 失敗している場合、結果が次のようになります。 ``` Fri, 26 Jun 2015 15:36:13 -0700    Fri, 26 Jun 2015 15:39:13 -0700    19    {kubelet node-i2hq}    spec.containers{uses-private-image}    failed        Failed to pull image "user/privaterepo:v1": Error: image user/privaterepo:v1 not found </del> <ins> イメージのPull操作では、有効なパターンごとに認証情報をCRIコンテナランタイムに渡すようになりました。例えば、以下のようなコンテナイメージ名は正常にマッチングされます。 - `my-registry.io/images` - `my-registry.io/images/my-image` - `my-registry.io/images/another-image` - `sub.my-registry.io/images/my-image` - `a.sub.my-registry.io/images/my-image` kubeletは、見つかったすべての認証情報に対してイメージのPullを順次実行します。これは、次のように`config.json`に複数のエントリーを書くことも可能であることを意味します。 ```json { "auths": { "my-registry.io/images": { "auth": "…" }, "my-registry.io/images/subpath": { "auth": "…" } } } </ins> ``` <ins> コンテナが`my-registry.io/images/subpath/my-image`をPullするイメージとして指定した場合、kubeletが認証ソースの片方からダウンロードに失敗すると、両方の認証ソースからダウンロードを試みます。 </ins> <del> クラスターのすべてのNodeが同じ`.docker/config.json`になっているかを確認する必要があります。 そうでない場合、Podは一部のNodeで実行できますが他のNodeでは実行に失敗します。 例えば、Nodeのオートスケールを使用している場合、各インスタンスのテンプレートに`.docker/config.json`が含まれている、またはこのファイルが含まれているドライブをマウントする必要があります。 プライベートレジストリキーを`.docker/config.json`に追加した時点で、すべてのPodがプライベートレジストリのイメージに読み取りアクセス権も持つようになります。 ### 事前にPullしたイメージ </del> <ins> ### 事前にPullしたイメージ {#pre-pulled-images} </ins> {{< note >}} Node構成を制御できる場合、この方法が適しています。

Discussion:
This is a Feature Request What would you like to be We need to update according to the English text, because it is outdated. Why is this needed is outdated. Comments /language ja /assign
This issue is currently awaiting triage. SIG Docs takes a lead on issue triage for this website, but any Kubernetes member can accept issues by applying the label. The label can be by org members by writing in a comment. <detailsInstructions for interacting with me using PR comments are available . If you have questions or suggestions related to my behavior, please file an issue against the repository. </details