Ubuntu 22.04でK3s Kubernetesクラスターをセットアップする方法
Ubuntu 22.04でK3s Kubernetesクラスターをセットアップする方法

Ubuntu 22.04でK3s Kubernetesクラスターをセットアップする方法

0 株式
0
0
0
0

Ubuntu 22.04でK3s Kubernetesクラスターをセットアップする方法

導入

Kubernetesは、コンテナオーケストレーションにおいて業界で最も人気のあるツールの1つです。しかし、Kubernetesクラスターをゼロから構築するのは非常に困難で、多くの設定が必要になります。さらに、Kubernetesクラスターの構築方法はいくつかありますが、本番環境用のクラスターを構築するのでなければ、その多くは時間のかかるものになりがちです。.

Kubernetes クラスターのセットアップを簡素化し、リソースが限られた遠隔地への導入を可能にすることで、エッジコンピューティングに最適な環境を実現するため、Rancher Labs は K3s を開発しました。K3s は軽量な Kubernetes ディストリビューションで、小さなバイナリを使用して数分で Kubernetes クラスターをインストールできます。.

このチュートリアルでは、Ubuntu に K3s をインストールする方法と、K3s で利用できる追加の構成オプションについて学習します。.

前提条件

このチュートリアルを完了するには、次のものが必要です。

Ubuntu 22.04 初期サーバー セットアップ ガイドに従って、少なくとも 1 GB の RAM を搭載した Ubuntu 22.04 サーバーがセットアップされました。.

ステップ1 - K3sをインストールする

この手順では、Ubuntu マシンに K3s の最新バージョンをインストールします。.

パスワードベースのログインを使用している場合は、次のコマンドを使用して、sudo ユーザー (このチュートリアルでは sammy) としてサーバーにログインします。

$ ssh sammy@your_server_ip

سپس با استفاده از دستور زیر K3 را نصب کنید.

$ curl -sfL https://get.k3s.io | sh -

スクリプトを実行するには、ユーザー パスワードの入力を求められます。.

このコマンドは、curl を使用して https://get.k3s.io にあるスクリプトをダウンロードし、--sh にパイプしてスクリプトを実行します。スクリプトを実行すると、K3s クラスターのインストールが開始され、単一ノードの Kubernetes クラスターを作成するためのデフォルト設定オプションが設定されます。.

次のような出力が得られます。

[secondary_label Output]

[INFO] Finding release for channel stable

[INFO] Using v1.27.7+k3s2 as release

[INFO] Downloading hash https://github.com/k3s-io/k3s/releases/download/v1.27.7+k3s2/sha256sum-amd64.txt

[INFO] Downloading binary https://github.com/k3s-io/k3s/releases/download/v1.27.7+k3s2/k3s

[INFO] Verifying binary download

[INFO] Installing k3s to /usr/local/bin/k3s

[INFO] Skipping installation of SELinux RPM

[INFO] Creating /usr/local/bin/kubectl symlink to k3s

[INFO] Creating /usr/local/bin/crictl symlink to k3s

[INFO] Creating /usr/local/bin/ctr symlink to k3s

[INFO] Creating killall script /usr/local/bin/k3s-killall.sh

[INFO] Creating uninstall script /usr/local/bin/k3s-uninstall.sh

[INFO] env: Creating environment file /etc/systemd/system/k3s.service.env

[INFO] systemd: Creating service file /etc/systemd/system/k3s.service

[INFO] systemd: Enabling k3s unit

Created symlink /etc/systemd/system/multi-user.target.wants/k3s.service → /etc/systemd/system/k3s.service.

[INFO] systemd: Starting k3s

...

スクリプトの出力には、インストールスクリプトがクラスターをインストールして起動するまでの手順が表示されます。次に、systemctlコマンドを使用してK3sサービスのステータスを確認し、実行中かどうかを確認します。.

$ systemctl status k3s

このコマンドは、ステータスをアクティブ (実行中) として表示します。

[secondary_label Output]

● k3s.service - Lightweight Kubernetes

Loaded: loaded (/etc/systemd/system/k3s.service; enabled; vendor preset: enabled)

Active: active (running) since Mon 2023-11-27 16:52:01 UTC; 19s ago

Docs: https://k3s.io

Process: 8396 ExecStartPre=/bin/sh -xc ! /usr/bin/systemctl is-enabled --quiet nm-cloud-setup.service (code=exi>

Process: 8398 ExecStartPre=/sbin/modprobe br_netfilter (code=exited, status=0/SUCCESS)

Process: 8399 ExecStartPre=/sbin/modprobe overlay (code=exited, status=0/SUCCESS)

Main PID: 8400 (k3s-server)

Tasks: 20

Memory: 467.3M

CPU: 12.952s

CGroup: /system.slice/k3s.service

├─8400 "/usr/local/bin/k3s server"

└─8421 "containerd " "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" >

...

ここまでで、Ubuntu に K3s をインストールし、単一ノードの Kubernetes クラスターを作成しました。次に、クラスターにデプロイされているデフォルトの Kubernetes オブジェクトを確認します。.

ステップ2 – Kubernetesのデフォルトオブジェクトを確認する

このステップでは、K3s のインストール後にデプロイされたデフォルトの Kubernetes オブジェクトを確認します。.

kube 名前空間のクラスターにデプロイされているすべての Kubernetes オブジェクトを表示するには、次のコマンドを実行します。kubectl は K3s のインストール中に自動的にインストールされるため、別途インストールする必要はありません。.

$ sudo kubectl get all -n kube-system

次のような出力が得られます。

[secondary_label Output]

NAME                                         READY   STATUS      RESTARTS   AGE

pod/local-path-provisioner-957fdf8bc-t8vpx   1/1     Running     0          4m34s

pod/coredns-77ccd57875-4hrd9                 1/1     Running     0          4m34s

pod/helm-install-traefik-crd-j2sqs           0/1     Completed   0          4m34s

pod/helm-install-traefik-mvxhw               0/1     Completed   1          4m34s

pod/metrics-server-648b5df564-gqxcz          1/1     Running     0          4m34s

pod/svclb-traefik-18597fcd-2cf68             2/2     Running     0          4m6s

pod/traefik-768bdcdcdd-srb8d                 1/1     Running     0          4m7s



NAME                     TYPE           CLUSTER-IP      EXTERNAL-IP      PORT(S)                      AGE

service/kube-dns         ClusterIP      10.43.0.10      <none>           53/UDP,53/TCP,9153/TCP       4m44s

service/metrics-server   ClusterIP      10.43.69.115    <none>           443/TCP                      4m43s

service/traefik          LoadBalancer   10.43.149.125   159.65.159.115   80:32266/TCP,443:32628/TCP   4m7s



NAME                                    DESIRED   CURRENT   READY   UP-TO-DATE   AVAILABLE   NODE SELECTOR   AGE

daemonset.apps/svclb-traefik-18597fcd   1         1         1       1            1           <none>          4m7s



NAME                                     READY   UP-TO-DATE   AVAILABLE   AGE

deployment.apps/local-path-provisioner   1/1     1            1           4m44s

deployment.apps/coredns                  1/1     1            1           4m44s

deployment.apps/metrics-server           1/1     1            1           4m44s

deployment.apps/traefik                  1/1     1            1           4m7s



NAME                                               DESIRED   CURRENT   READY   AGE

replicaset.apps/local-path-provisioner-957fdf8bc   1         1         1       4m34s

replicaset.apps/coredns-77ccd57875                 1         1         1       4m34s

replicaset.apps/metrics-server-648b5df564          1         1         1       4m34s

replicaset.apps/traefik-768bdcdcdd                 1         1         1       4m7s



NAME                                 COMPLETIONS   DURATION   AGE

job.batch/helm-install-traefik-crd   1/1           28s        4m41s

job.batch/helm-install-traefik       1/1           31s        4m41s



...
 

上記の出力は、Kubernetes クラスターにデプロイされたさまざまなオブジェクトを示しています。例えば、coredns、local-path-provisioner、metrics-server、traefik のそれぞれに 1 つずつ、合計 4 つのデプロイメントが実行されています。.

sudo を使用せずにコマンドを実行すると、次のエラーが発生する可能性があります。.

Output
WARN[0000] Unable to read /etc/rancher/k3s/k3s.yaml, please start server with --write-kubeconfig-mode to modify kube config permissions

error: error loading config file "/etc/rancher/k3s/k3s.yaml": open /etc/rancher/k3s/k3s.yaml: permission denied

...

kubectl コマンドを実行するときに sudo を必要としないようにするには、以下に示すように、chmod を使用して構成ファイルの権限を変更します。.

$ sudo chmod 644 /etc/rancher/k3s/k3s.yaml

ここまでで、K3s クラスターにデフォルトでデプロイされた Kubernetes オブジェクトのステータスを確認できました。次に、インストール時に K3s の設定オプションを理解し、変更する方法を学びます。.

ステップ3 – K3Sの設定オプションを理解して変更する

K3sはデフォルト設定でインストールしましたが、設定を調整することでクラスター固有の動作をカスタマイズできます。このステップでは、K3の環境変数を使用してインストールスクリプトで設定を行う方法を学習します。.

たとえば、traefik イングレス コントローラーのインストールにはデフォルト設定が付属していますが、場合によっては、インストール中にイングレス コントローラーを無効にする必要があります。.

環境変数 INSTALL_K3S_EXEC は、K3s サービスにフラグを渡すために使用できます。以下のコマンドは、K3 インストール中に traefik を無効にするために使用できます。.

$ curl -sfL https://get.k3s.io | INSTALL_K3S_EXEC="--disable=traefik" sh -

Kubernetesオブジェクトを確認して検証してください。今回はコントローラーリソースは存在しません。.

$ sudo kubectl get all -n kube-system

環境変数を使って設定オプションを変更するだけでなく、K3s設定ファイルでも変更可能です。必要なオプションを設定ファイルに指定し、K3sサーバーを再起動することで変更が有効になります。.

K3s は、etc/rancher/k3s/config.yaml/ にある構成ファイルを使用します。.

次のコマンドを実行して、構成ファイルを作成して書き込みます。.

$ sudo nano /etc/rancher/k3s/config.yaml

設定ファイルに次の内容を記述します。.

$ disable: traefik

Ctrl+Xを押して書き込み、ファイルを終了します。disabled 行の traefik は、K3s サービスに traefik インストールに関連付けられたリソースを削除するよう指示します。.

次に、次のコマンドを使用して K3s サービスを再起動し、変更を適用します。.

$ sudo systemctl restart k3s

これで、kube システム名前空間内のすべての Kubernetes オブジェクトを一覧表示して確認できます。この時点では、traefik インストールに関連付けられたリソースは存在しないはずです。.

$ sudo kubectl get all -n kube-system

このステップでは、インストール中およびインストール後にK3sの構成を変更する方法を学習しました。次に、K3sクラスターを削除して仮想マシンをクリーンアップします。.

ステップ4 – K3sをアンインストールする

K3Sをアンインストールするには、「usr/local/bin/k3s-uninstall.sh/」というシェルスクリプトを実行する必要があります。このスクリプトはK3sのインストール後に自動的に生成され、完全なクリーンアップに使用できます。アンインストール中に、K3sのインストール時に作成またはインストールされたK3s設定およびクラスタツールはすべて削除されます。.

K3 を削除するには、次のコマンドを実行します。

$ /usr/local/bin/k3s-uninstall.sh

次のコマンドを使用して K3s サービスのステータスを確認し、アンインストールを確認します。

$ systemctl status k3s

次のような出力が得られます。

[secondary_label Output]

Unit k3s.service could not be found.

結果

この記事では、Ubuntu に K3s クラスターをインストールし、K3s で利用可能な設定オプションとその使用方法について理解しました。Kubernetes クラスターのセットアップが完了したら、Kubernetes のさまざまな種類のオブジェクトとその機能について確認してみましょう。.

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

あなたも気に入るかもしれない