概要
- k8sテスト環境構築
Rancher インストール
構築目次
環境
- Rancher: v2.6.3
- kubernetes(Client): v1.22.4
- kubernetes(Server): v1.22.4
構成図
詳細
Name | Role | IP(192.168.245.0/24) | OS |
---|---|---|---|
Rancher01 | Rancher Server \ NTP |
192.168.245.101 | CentOS 7.9 |
Master01 | Master Node | 192.168.245.102 | CentOS 7.9 |
Worker01,2,3 (3台) | Worker Node | 192.168.245.103, 192.168.245.104, 192.168.245.105 |
CentOS 7.9 |
ClientPC | Client | DHCP | Ubuntu Desktop v20.04 |
※OSバージョンについて: | |||
CentOS stream 8に変更したが、Rnacher起動に失敗したため、7.9を選択 | |||
→ 最新kernelで失敗するとの記事を見たが、リンクを忘れた。 |
サーバ環境構築
- Rancher Install Page
https://rancher.com/docs/rancher/v2.6/en/quick-start-guide/deployment/quickstart-manual-setup/
対象サーバ:
- Rancher01
- Master01
- Worker01,2,3
OS設定
- 共通設定:SELinux無効、Firewall無効
- Rancher01のみDockerインストール
https://docs.docker.com/engine/install/centos/
Rancher 環境構築
Rancher Server インストール
- 作業場所: Rancher01
$ sudo docker run -d --restart=unless-stopped -p 80:80 -p 443:443 --privileged rancher/rancher
## 確認 ##
$ sudo docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
f23b05b51ac6 rancher/rancher "entrypoint.sh" 25 hours ago Up 51 minutes 0.0.0.0:80->80/tcp, :::80->80/tcp, 0.0.0.0:443->443/tcp, :::443->443/tcp relaxed_faraday
## 初期パスワード確認 ##
$ docker logs f23b05b51ac6 2>&1 | grep "Bootstrap Password:"
2021/12/29 04:10:18 [INFO] Bootstrap Password: xxxxxxxxxxxxxxxxxxxx
Cluster作成
- 作業場所: ClientPC
-
ブラウザを起動 → Rancher Serverにアクセス
https://192.168.245.101 -
Rancher Server インストールで確認した初期パスワードを入力し、[Log in with Local User]クリック
-
以下のように設定し、[Continue]クリック
・[Set a specific password to use]選択 → パスワード設定
・[I agree to the Terms...]チェック
-
以下ように設定し、[Create]クリック
・[Cluster Name]設定
・[NGINX Ingress]チェックを外す
→ Ingressは手動設定するため、外したが、デフォルトIngressを使う場合はインストールしても良い。
-
Master Node用コマンド作成: [etcd]と[Control Plane]のみチェック → コマンドをメモ帳へコピペ
※同じ手順でWorker Node用コマンド作成: [Worker]のみチェック → コマンドをメモ帳へコピペ
Master Node 構築
- 作業場所: Master01
メモ帳へコピペしておいたMaster Node用コマンドを実行
Master01
$ curl -fL https://192.168.245.101/system-agent-install.sh | sudo sh -s - --server https://192.168.245.101 --label 'cattle.io/os=linux' --token xxxxxxxxxxxx --ca-checksum xxxxxxxxxxxxxxxxxx --etcd --controlplane
Worker Node 構築
- 作業場所: Worker01,2,3
メモ帳へコピペしておいたWorker Node用コマンドを実行
Worker01,2,3
$ curl -fL https://192.168.245.101/system-agent-install.sh | sudo sh -s - --server https://192.168.245.101 --label 'cattle.io/os=linux' --token xxxxxxxxxxxxxxxxxx --ca-checksum xxxxxxxxxxxxxxxxxxxxxx --worker
Node 構築完了確認
- 作業場所: ClientPC
ClientPC(作業端末)設定
- 作業場所: ClientPC
kubectlコマンド ダウンロード&PATH設定
https://kubernetes.io/docs/tasks/tools/install-kubectl-linux/
$ curl -LO https://dl.k8s.io/release/v1.22.4/bin/linux/amd64/kubectl
$ chmod +x ./kubectl
$ sudo mv ./kubectl /usr/local/bin/
$ kubectl version --short
Client Version: v1.22.4
..........
Kubeconfigファイルを保存
$ mkdir ~/.kube
$ vi .kube/config
$ cat .kube/config
apiVersion: v1
kind: Config
clusters:
- name: "obi-cluster"
cluster:
server: "https://192.168.245.101/k8s/clusters/c-m-ltmgdtdx"
..........省略..........
contexts:
- name: "obi-cluster"
context:
user: "obi-cluster"
cluster: "obi-cluster"
current-context: "obi-cluster"
- 確認
$ kubectl version --short
Client Version: v1.22.4
Server Version: v1.22.4+rke2r2
$ kubectl get nodes -owide
NAME STATUS ROLES AGE VERSION INTERNAL-IP EXTERNAL-IP OS-IMAGE KERNEL-VERSION CONTAINER-RUNTIME
master01 Ready control-plane,etcd,master 24h v1.22.4+rke2r2 192.168.245.102 <none> CentOS Linux 7 (Core) 3.10.0-1160.49.1.el7.x86_64 containerd://1.5.8-k3s1
worker01 Ready worker 23h v1.22.4+rke2r2 192.168.245.103 <none> CentOS Linux 7 (Core) 3.10.0-1160.49.1.el7.x86_64 containerd://1.5.8-k3s1
worker02 Ready worker 23h v1.22.4+rke2r2 192.168.245.104 <none> CentOS Linux 7 (Core) 3.10.0-1160.49.1.el7.x86_64 containerd://1.5.8-k3s1
worker03 Ready worker 23h v1.22.4+rke2r2 192.168.245.105 <none> CentOS Linux 7 (Core) 3.10.0-1160.49.1.el7.x86_64 containerd://1.5.8-k3s1