Kubernetesをkubesprayでインストールする
ステップバイステップの手順
目次
Howto: KubernetesをKubesprayでインストール、環境の設定、インベントリの構成、およびAnsibleプレイブックの実行を含みます。
事前条件
ハードウェアおよびソフトウェアの要件
- 以下の仕様を持つ複数のマシン(少なくとも3ノード:1マスターと2ワーカー)を確保してください:
- Ubuntu 16.04/18.04またはCentOS 7がインストールされている。
- 各マシンあたり少なくとも2GBのRAM(より多くのRAMは大規模なクラスターに推奨)。
- Kubesprayのコントロールマシンから各ノードへのネットワーク接続およびSSHアクセス。
- 高可用性を考慮する場合は、16GB RAM、100GBディスク、6CPUコアを持つノードを検討してください。
コントロールマシンの設定
-
Gitがまだインストールされていない場合はインストールしてください:
sudo apt install git-all
-
Python(2.7または3.5+)とpipをインストールしてください:
sudo apt update sudo apt install python3 python3-pip
-
Ansibleおよび他の依存関係をインストールしてください。Kubesprayはこれを処理するスクリプトを提供しています:
git clone https://github.com/kubernetes-sigs/kubespray.git cd kubespray git checkout release-2.20 # オプション:安定したリリースをチェックアウト python3 -m venv venv # Python仮想環境を作成 source venv/bin/activate # 仮想環境をアクティブ化 pip install -r requirements.txt # Ansibleおよび他の依存関係をインストール
インベントリの構成
-
例のインベントリをコピーしてください:
cp -r inventory/sample inventory/mycluster
-
inventory/mycluster/hosts.ini
ファイルを編集してノードを追加してください:[all] node1 ansible_host=10.10.1.3 ansible_user=ubuntu node2 ansible_host=10.10.1.4 ansible_user=ubuntu node3 ansible_host=10.10.1.5 ansible_user=ubuntu [kube-master] node1 [kube-node] node2 node3
-
別のユーザーを使用している場合は、
ubuntu
をあなたのユーザーに置き換えてください。 -
inventory_builder
スクリプトを使用してインベントリファイルを生成することもできます:declare -a IPS=(10.10.1.3 10.10.1.4 10.10.1.5) HOST_PREFIX=dcm-cp- KUBE_CONTROL_HOSTS=3 CONFIG_FILE=inventory/mycluster/hosts.yaml python3 contrib/inventory_builder/inventory.py ${IPS[@]}
設定のカスタマイズ
-
inventory/mycluster/group_vars/k8s_cluster/k8s-cluster.yml
ファイルでKubernetesクラスターの設定をカスタマイズしてください。例えば:kube_network_plugin: flannel kubeconfig_localhost: true
-
高可用性を構成するには、VIPとロードバランサーを設定してください:
# inventory/mycluster/group_vars/all/all.yml kube_vip_arp_enabled: true kube_vip_enabled: true kube_vip_controlplane_enabled: true kube_vip_address: 10.7.12.250 # 正しいVIPに更新 kube_vip_interface: eno1 # 正しいインターフェースに更新
クラスターの展開
- Kubernetesを展開するためのAnsibleプレイブックを実行してください:
ansible-playbook -i inventory/mycluster/hosts.yaml cluster.yml -b -v --become --become-user=root --private-key=~/.ssh/private_key
展開後の手順
- 展開が完了すると、
inventory/mycluster/artifacts
ディレクトリにkubeconfig
ファイルが見つかります。このファイルは、kubectl
を使用してKubernetesクラスターとやり取りするために必要です。export KUBECONFIG=inventory/mycluster/artifacts/admin.conf kubectl get nodes
トラブルシューティングおよびアクセス
- クラスターのトラブルシューティングやアクセスを行うには、コントロールマシンまたはクラスターを管理する予定の任意のマシンに
kubectl
バイナリがインストールされていることを確認してください。 - ワーカーノードが準備できていない、または他のポッドのスケジューリング問題などの問題に遭遇した場合は、ログを確認し、必要に応じて設定を調整してください。