はじめに
以前の記事で構築したK3sに、Windowsからkubectlで操作できるようにしてみました。
参考にサイト
- Windows上でのkubectlのインストールおよびセットアップ
- configファイルの作成
構成図
+-----------------------+
| +-------------------+ |
| | +---------------+ | |
| | | +-----------+ | | |
| | | | K3s | | | |
| | | +---------A-+ | | |
| | | Debian 12 | | | |
| | +-----------|---+ | |
| | WSL2 | | |
| +-------------|-----+ |
| | |
| +----+----+ |
| | kubectl | |
| +---------+ |
| Windows 10 |
+-----------------------+
kubectl.exeのインストール
- 以下のページを参考に、kubectl.exeファイルを任意の場所に保存してください。
- 以下のコマンドを実行し、環境変数
Path
にkubectl.exeコマンドを保存したディレクトリを追加してください。Set-Item Env:Path $Env:Path";<kubectl.exeを保存したディレクトリ>"
configファイルの作成
- Windowsのユーザのホームディレクトリに移動してください。
cd $Env:HOMEPATH
-
.kube
ディレクトリを作成してください。mkdir .kube
-
.kube
ディレクトリに移動してください。cd .kube
- configファイルを作成してください。
New-Item config -type file
- K3sを動かしているLinuxにログインし、以下のコマンドを実行してください。
sudo k3s kubectl config view --raw
- Visual Studio Codeなどでconfigファイルを開き、
sudo k3s kubectl config view --raw
の実行結果を貼り付けてください。apiVersion: v1 clusters: - cluster: certificate-authority-data: (snip) server: https://127.0.0.1:6443 name: default contexts: - context: cluster: default user: default name: default current-context: default kind: Config preferences: {} users: - name: default user: client-certificate-data: (snip) client-key-data: (snip)
- IPアドレスが、127.0.0.1となっている個所を、LinuxのIPアドレス (私の環境では172.23.210.56でした) に変更してください。
kubectlコマンドの実行
- 任意のディレクトリに移動し、kubectl.exeを実行してください。
PS C:\> kubectl.exe get node NAME STATUS ROLES AGE VERSION node/desktop-1be4jse Ready control-plane,master 33h v1.30.0+k3s1
Podの作成
- Windowsからkubectl.exeを実行し、NGINXのPodが起動できるか試しました。
- 本当はMariaDBのPodでも起動しようかと思ったのですが、ちょっと長くなりそうだったので、以前の記事と同じくNGINXにしました。
- Windowsの任意のディレクトリ (e.g., C:\Users\foo\k3s) に、nginx.yamlファイルを作成してください。
New-Item nginx.yaml -type file
- Visual Studio Codeなどで、nginx.yamlを開き、以下のように編集してください。
apiVersion: v1 kind: Pod metadata: name: nginx labels: app: nginx spec: containers: - name: nginx image: nginx ports: - containerPort: 80 --- apiVersion: v1 kind: Service metadata: name: nginx spec: type: NodePort ports: - name: nginx protocol: TCP port: 80 targetPort: 80 nodePort: 30080 selector: app: nginx
- kubectl.exeで、NGINXのPodと、ポートフォワードのためのServiceを作成してください。
kubectl.exe apply -f nginx.yaml
- Podが作成されていることを確認してください。
PS C:\> kubectl.exe get pod NAME READY STATUS RESTARTS AGE nginx 1/1 Running 0 52m
- curlコマンドで、NIGNXにアクセスできることを確認してください。
curl 172.23.210.56:30080
- 実行結果
<!DOCTYPE html> <html> (snip) <body> <h1>Welcome to nginx!</h1> (snip)
- 実行結果
さいごに
これで、Windowsからもkubectl.exeで、K3sを操作できること確認できました。次はいつになるか分かりませんが、NGINX以外のPodも試してみようと思います。