はじめに
WSL(Ubuntu)上に構築したKubernetesのnginxサービスを立ち上げ、ホスト(Windows)側からブラウザアクセスする方法をまとめます。
動作環境
WSL上にminikubeとkubectlをインストールした環境を用意します。
今回の動作を確認した環境は下の表のとおりです。
ターゲット | OS |
---|---|
ホスト | Windows 11 Home 21H2 |
WSL | Ubuntu 20.04 |
nginxの起動
minikubeを起動します。
minikube start
nginx用のマニフェストを作成します。(こちらの記事の内容を使わせていただきました)
apiVersion: apps/v1
kind: Deployment
metadata:
name: nginx
spec:
selector:
matchLabels:
app: nginx
replicas: 1
template:
metadata:
labels:
app: nginx
spec:
containers:
- name: nginx
image: nginx:1.14.2
ports:
- containerPort: 80
nginxサービスをデプロイします。
kubectl apply -f nginx.yaml
kubectl expose deploy/nginx --port=80
以下のコマンドを実行し、8080番ポートのアクセスをnginxの80番ポートにポートフォワードします。
kubectl port-forward svc/nginx 8080:80
ゲスト側のターミナルでcurlを実行し、nginxが動作していることを確認します。
$ curl localhost:8080
<!DOCTYPE html>
<html>
<head>
<title>Welcome to nginx!</title>
~(略)~
ブラウザからのアクセス
ホスト側のブラウザを立ち上げ、アドレスバーにlocalhost:8080を入力することで、nginxにアクセスすることができます。以前はこちらの記事に書かれている設定が必要のようでしたが、今回は特に設定せずにブラウザからアクセスすることができました。
おわりに
結論としてはシンプルなのですが、WSLとKubernetesの知識が必要で試行錯誤しました。この記事の内容が誰かの参考になればうれしいです。