diff --git a/content/ja/docs/setup/production-environment/tools/kubeadm/install-kubeadm.md b/content/ja/docs/setup/production-environment/tools/kubeadm/install-kubeadm.md index 20d8adfcf6845..40d46f19122e7 100644 --- a/content/ja/docs/setup/production-environment/tools/kubeadm/install-kubeadm.md +++ b/content/ja/docs/setup/production-environment/tools/kubeadm/install-kubeadm.md @@ -10,27 +10,27 @@ card: {{% capture overview %}} -This page shows how to install the `kubeadm` toolbox. -For information how to create a cluster with kubeadm once you have performed this installation process, see the [Using kubeadm to Create a Cluster](/ja/docs/setup/production-environment/tools/kubeadm/create-cluster-kubeadm/) page. + +このページでは`kubeadm`コマンドをインストールする方法を示します。このインストール処理実行後にkubeadmを使用してクラスターを作成する方法については、[kubeadmを使用したシングルマスタークラスターの作成](/ja/docs/setup/production-environment/tools/kubeadm/create-cluster-kubeadm/)を参照してください。 {{% /capture %}} {{% capture prerequisites %}} -* One or more machines running one of: +* 次のいずれかが動作しているマシンが必要です - Ubuntu 16.04+ - - Debian 9 + - Debian 9+ - CentOS 7 - - RHEL 7 - - Fedora 25/26 (best-effort) + - Red Hat Enterprise Linux (RHEL) 7 + - Fedora 25+ - HypriotOS v1.0.1+ - Container Linux (tested with 1800.6.0) -* 2 GB or more of RAM per machine (any less will leave little room for your apps) -* 2 CPUs or more -* Full network connectivity between all machines in the cluster (public or private network is fine) -* Unique hostname, MAC address, and product_uuid for every node. See [here](#MACアドレスとproduct_uuidが全てのノードでユニークであることの検証) for more details. -* Certain ports are open on your machines. See [here](#必須ポートの確認) for more details. -* Swap disabled. You **MUST** disable swap in order for the kubelet to work properly. +* 1台あたり2GB以上のメモリ(2GBの場合、アプリ用のスペースはほとんどありません) +* 2コア以上のCPU +* クラスター内のすべてのマシン間で通信可能なネットワーク(パブリックネットワークでもプライベートネットワークでも構いません) +* ユニークなhostname、MACアドレス、とproduct_uuidが各ノードに必要です。詳細は[ここ](#MACアドレスとproduct_uuidが全てのノードでユニークであることの検証)を参照してください。 +* マシン内の特定のポートが開いていること。詳細は[ここ](#必須ポートの確認)を参照してください。 +* Swapがオフであること。kubeletが正常に動作するためにはswapは**必ず**オフでなければなりません。 {{% /capture %}} @@ -38,125 +38,125 @@ For information how to create a cluster with kubeadm once you have performed thi ## MACアドレスとproduct_uuidが全てのノードでユニークであることの検証 -* You can get the MAC address of the network interfaces using the command `ip link` or `ifconfig -a` -* The product_uuid can be checked by using the command `sudo cat /sys/class/dmi/id/product_uuid` +* ネットワークインターフェースのMACアドレスは`ip link`もしくは`ifconfig -a`コマンドで取得できます。 +* product_uuidは`sudo cat /sys/class/dmi/id/product_uuid`コマンドで確認できます。 -It is very likely that hardware devices will have unique addresses, although some virtual machines may have -identical values. Kubernetes uses these values to uniquely identify the nodes in the cluster. -If these values are not unique to each node, the installation process -may [fail](https://github.com/kubernetes/kubeadm/issues/31). +ハードウェアデバイスではユニークなアドレスが割り当てられる可能性が非常に高いですが、VMでは同じになることがあります。Kubernetesはこれらの値を使用して、クラスター内のノードを一意に識別します。これらの値が各ノードに固有ではない場合、インストール処理が[失敗](https://github.com/kubernetes/kubeadm/issues/31)することもあります。 ## ネットワークアダプタの確認 -If you have more than one network adapter, and your Kubernetes components are not reachable on the default -route, we recommend you add IP route(s) so Kubernetes cluster addresses go via the appropriate adapter. +複数のネットワークアダプターがあり、Kubernetesコンポーネントにデフォルトで到達できない場合、IPルートを追加して、Kubernetesクラスターのアドレスが適切なアダプターを経由するように設定することをお勧めします。 + +## iptablesがnftablesバックエンドを使用しないようにする + +Linuxでは、カーネルのiptablesサブシステムの最新の代替品としてnftablesが利用できます。`iptables`ツールは互換性レイヤーとして機能し、iptablesのように動作しますが、実際にはnftablesを設定します。このnftablesバックエンドは現在のkubeadmパッケージと互換性がありません。(ファイアウォールルールが重複し、`kube-proxy`を破壊するためです。) + +もしあなたのシステムの`iptables`ツールがnftablesバックエンドを使用している場合、これらの問題を避けるために`iptables`ツールをレガシーモードに切り替える必要があります。これは、少なくともDebian 10(Buster)、Ubuntu 19.04、Fedora 29、およびこれらのディストリビューションの新しいリリースでのデフォルトです。RHEL 8はレガシーモードへの切り替えをサポートしていないため、現在のkubeadmパッケージと互換性がありません。 + +{{< tabs name="iptables_legacy" >}} +{{% tab name="Debian or Ubuntu" %}} +```bash +sudo update-alternatives --set iptables /usr/sbin/iptables-legacy +sudo update-alternatives --set ip6tables /usr/sbin/ip6tables-legacy +sudo update-alternatives --set arptables /usr/sbin/arptables-legacy +sudo update-alternatives --set ebtables /usr/sbin/ebtables-legacy +``` +{{% /tab %}} +{{% tab name="Fedora" %}} +```bash +update-alternatives --set iptables /usr/sbin/iptables-legacy +``` +{{% /tab %}} +{{< /tabs >}} ## 必須ポートの確認 ### マスターノード -| Protocol | Direction | Port Range | Purpose | Used By | -|----------|-----------|------------|-------------------------|---------------------------| -| TCP | Inbound | 6443* | Kubernetes API server | All | -| TCP | Inbound | 2379-2380 | etcd server client API | kube-apiserver, etcd | -| TCP | Inbound | 10250 | Kubelet API | Self, Control plane | -| TCP | Inbound | 10251 | kube-scheduler | Self | -| TCP | Inbound | 10252 | kube-controller-manager | Self | +| プロトコル | 通信の向き | ポート範囲 | 目的 | 使用者 | +|-----------|------------|------------|-------------------------|---------------------------| +| TCP | Inbound | 6443* | Kubernetes API server | All | +| TCP | Inbound | 2379-2380 | etcd server client API | kube-apiserver, etcd | +| TCP | Inbound | 10250 | Kubelet API | Self, Control plane | +| TCP | Inbound | 10251 | kube-scheduler | Self | +| TCP | Inbound | 10252 | kube-controller-manager | Self | ### ワーカーノード -| Protocol | Direction | Port Range | Purpose | Used By | -|----------|-----------|-------------|-----------------------|-------------------------| -| TCP | Inbound | 10250 | Kubelet API | Self, Control plane | -| TCP | Inbound | 30000-32767 | NodePort Services** | All | +| プロトコル | 通信の向き | ポート範囲 | 目的 | 使用者 | +|-----------|------------|-------------|-------------------------|-------------------------| +| TCP | Inbound | 10250 | Kubelet API | Self, Control plane | +| TCP | Inbound | 30000-32767 | NodePort Services** | All | -** Default port range for [NodePort Services](/docs/concepts/services-networking/service/). +** [NodePort Services](/docs/concepts/services-networking/service/)のデフォルトのポートの範囲 -Any port numbers marked with * are overridable, so you will need to ensure any -custom ports you provide are also open. +\*の項目は書き換え可能です。そのため、あなたが指定したカスタムポートも開いていることを確認する必要があります。 -Although etcd ports are included in control-plane nodes, you can also host your own -etcd cluster externally or on custom ports. +etcdポートはコントロールプレーンノードに含まれていますが、独自のetcdクラスターを外部またはカスタムポートでホストすることもできます。 -The pod network plugin you use (see below) may also require certain ports to be -open. Since this differs with each pod network plugin, please see the -documentation for the plugins about what port(s) those need. +使用するPodネットワークプラグイン(以下を参照)のポートも開く必要があります。これは各Podネットワークプラグインによって異なるため、必要なポートについてはプラグインのドキュメントを参照してください。 ## ランタイムのインストール -Since v1.6.0, Kubernetes has enabled the use of CRI, Container Runtime Interface, by default. +v1.6.0以降、KubernetesはデフォルトでCRI(Container Runtime Interface)の使用を有効にしています。 -Since v1.14.0, kubeadm will try to automatically detect the container runtime on Linux nodes -by scanning through a list of well known domain sockets. The detectable runtimes and the -socket paths, that are used, can be found in the table below. +また、v1.14.0以降、kubeadmは既知のドメインソケットのリストをスキャンして、Linuxノード上のコンテナランタイムを自動的に検出しようとします。検出可能なランタイムとソケットパスは、以下の表に記載されています。 -| Runtime | Domain Socket | +| ランタイム | ドメインソケット | |------------|----------------------------------| | Docker | /var/run/docker.sock | | containerd | /run/containerd/containerd.sock | | CRI-O | /var/run/crio/crio.sock | -If both Docker and containerd are detected together, Docker takes precedence. This is -needed, because Docker 18.09 ships with containerd and both are detectable. -If any other two or more runtimes are detected, kubeadm will exit with an appropriate -error message. +Dockerとcontainerdの両方が同時に検出された場合、Dockerが優先されます。Docker 18.09にはcontainerdが同梱されており、両方が検出可能であるため、この仕様が必要です。他の2つ以上のランタイムが検出された場合、kubeadmは適切なエラーメッセージで終了します。 -On non-Linux nodes the container runtime used by default is Docker. +Linux以外のノードでは、デフォルトで使用されるコンテナランタイムはDockerです。 -If the container runtime of choice is Docker, it is used through the built-in -`dockershim` CRI implementation inside of the `kubelet`. +もしコンテナランタイムとしてDockerを選択した場合、`kebelet`内に組み込まれた`dockershim` CRIが使用されます。 -Other CRI-based runtimes include: +その他のCRIに基づくランタイムでは以下を使用します - [containerd](https://github.com/containerd/cri) (CRI plugin built into containerd) - [cri-o](https://cri-o.io/) - [frakti](https://github.com/kubernetes/frakti) -Refer to the [CRI installation instructions](/ja/docs/setup/production-environment/container-runtimes/) for more information. +詳細は[CRIのインストール](/ja/docs/setup/production-environment/container-runtimes/)を参照してください。 ## kubeadm、kubelet、kubectlのインストール -You will install these packages on all of your machines: +以下のパッケージをマシン上にインストールしてください -* `kubeadm`: the command to bootstrap the cluster. +* `kubeadm`: クラスターを起動するコマンドです。 -* `kubelet`: the component that runs on all of the machines in your cluster - and does things like starting pods and containers. +* `kubelet`: クラスター内のすべてのマシンで実行されるコンポーネントです。 + Podやコンテナの起動などを行います。 -* `kubectl`: the command line util to talk to your cluster. +* `kubectl`: クラスターにアクセスするためのコマンドラインツールです。 -kubeadm **will not** install or manage `kubelet` or `kubectl` for you, so you will -need to ensure they match the version of the Kubernetes control plane you want -kubeadm to install for you. If you do not, there is a risk of a version skew occurring that -can lead to unexpected, buggy behaviour. However, _one_ minor version skew between the -kubelet and the control plane is supported, but the kubelet version may never exceed the API -server version. For example, kubelets running 1.7.0 should be fully compatible with a 1.8.0 API server, -but not vice versa. +kubeadmは`kubelet`や`kubectl`をインストールまたは管理**しない**ため、kubeadmにインストールするKubernetesコントロールプレーンのバージョンと一致させる必要があります。そうしないと、予期しないバグのある動作につながる可能性のあるバージョン差異(version skew)が発生するリスクがあります。ただし、kubeletとコントロールプレーン間のマイナーバージョン差異(minor version skew)は_1つ_サポートされていますが、kubeletバージョンがAPIサーバーのバージョンを超えることはできません。たとえば、1.7.0を実行するkubeletは1.8.0 APIサーバーと完全に互換性がありますが、その逆はできません。 -For information about installing `kubectl`, see [Install and set up kubectl](/docs/tasks/tools/install-kubectl/). +`kubectl`のインストールに関する詳細情報は、[kubectlのインストールおよびセットアップ](/docs/tasks/tools/install-kubectl/)を参照してください。 {{< warning >}} -These instructions exclude all Kubernetes packages from any system upgrades. -This is because kubeadm and Kubernetes require -[special attention to upgrade](/docs/tasks/administer-cluster/kubeadm/kubeadm-upgrade-1-11/). +これらの手順はシステムアップグレードによるすべてのKubernetesパッケージの更新を除きます。これはkubeadmとKubernetesが[アップグレードにおける特別な注意](docs/tasks/administer-cluster/kubeadm/kubeadm-upgrade/)を必要とするからです。 {{}} -For more information on version skews, see: +バージョン差異(version skew)に関しては下記を参照してください。 -* Kubernetes [version and version-skew policy](/ja/docs/setup/release/version-skew-policy/) -* Kubeadm-specific [version skew policy](/ja/docs/setup/production-environment/tools/kubeadm/create-cluster-kubeadm/#version-skew-policy) +* Kubernetes [Kubernetesバージョンとバージョンスキューサポートポリシー](/ja/docs/setup/release/version-skew-policy/) +* Kubeadm-specific [バージョン互換ポリシー](/ja/docs/setup/production-environment/tools/kubeadm/create-cluster-kubeadm/#version-skew-policy) {{< tabs name="k8s_install" >}} {{% tab name="Ubuntu, Debian or HypriotOS" %}} ```bash -apt-get update && apt-get install -y apt-transport-https curl -curl -s https://packages.cloud.google.com/apt/doc/apt-key.gpg | apt-key add - -cat </etc/apt/sources.list.d/kubernetes.list +sudo apt-get update && sudo apt-get install -y apt-transport-https curl +curl -s https://packages.cloud.google.com/apt/doc/apt-key.gpg | sudo apt-key add - +cat <}} +kubeadmが何をすべきか指示するまで、kubeletはクラッシュループで数秒ごとに再起動します。 -The kubelet is now restarting every few seconds, as it waits in a crashloop for -kubeadm to tell it what to do. - -## マスターノードのkubeletによって使用されるcgroupドライバの設定 +## マスターノードのkubeletによって使用されるcgroupドライバーの設定 -When using Docker, kubeadm will automatically detect the cgroup driver for the kubelet -and set it in the `/var/lib/kubelet/kubeadm-flags.env` file during runtime. +Dockerを使用した場合、kubeadmは自動的にkubelet向けのcgroupドライバーを検出し、それを実行時に`/var/lib/kubelet/kubeadm-flags.env`ファイルに設定します。 -If you are using a different CRI, you have to modify the file -`/etc/default/kubelet` with your `cgroup-driver` value, like so: +もしあなたが異なるCRIを使用している場合、`/etc/default/kubelet`(CentOS、RHEL、Fedoraでは`/etc/sysconfig/kubelet`)ファイル内の`cgroup-driver`の値を以下のように変更する必要があります。 ```bash KUBELET_EXTRA_ARGS=--cgroup-driver= ``` -This file will be used by `kubeadm init` and `kubeadm join` to source extra -user defined arguments for the kubelet. +このファイルは、kubeletの追加のユーザー定義引数を取得するために、`kubeadm init`および`kubeadm join`によって使用されます。 -Please mind, that you **only** have to do that if the cgroup driver of your CRI -is not `cgroupfs`, because that is the default value in the kubelet already. +CRIのcgroupドライバーが`cgroupfs`でない場合に**のみ**それを行う必要があることに注意してください。なぜなら、これは既にkubeletのデフォルト値であるためです。 -Restarting the kubelet is required: +kubeletをリスタートする方法: ```bash systemctl daemon-reload systemctl restart kubelet ``` -The automatic detection of cgroup driver for other container runtimes -like CRI-O and containerd is work in progress. - +CRI-Oやcontainerdといった他のコンテナランタイムのcgroup driverは実行中に自動的に検出されます。 ## トラブルシュート -If you are running into difficulties with kubeadm, please consult our [troubleshooting docs](/ja/docs/setup/production-environment/tools/kubeadm/troubleshooting-kubeadm/). +kubeadmで問題が発生した場合は、[トラブルシューティング](/ja/docs/setup/production-environment/tools/kubeadm/troubleshooting-kubeadm/)を参照してください。 {{% capture whatsnext %}} -* [Using kubeadm to Create a Cluster](/ja/docs/setup/production-environment/tools/kubeadm/create-cluster-kubeadm/) +* [kubeadmを使用したシングルマスタークラスターの作成](/ja/docs/setup/production-environment/tools/kubeadm/create-cluster-kubeadm/) {{% /capture %}}