Rancher Desktop kubernetes でnginxを動かしてみる

# やりたいこと
Rancher Desktopを使って、ローカル環境のkubernetesクラスタにnginxをdeployしてローカルPCからアクセスする

# 環境準備
Macに[公式サイト](https://rancherdesktop.io/)からRancher DesktopをインストールしてRancher Desktopを実行する。

設定からkubernetesを有効にする。
<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3349326/82e9e02c-e206-9028-1ff7-a321462e0581.png" width="50%">

Dockerを使いたかったので、コンテナエンジンをdockerにする。
<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3349326/518f2fe6-3749-cad7-a44d-e219da8779b3.png" width="50%">

## kubernetes コンテキスト切り替え
Rancher Desctopをインストールした後に、以下のコマンドでコンテキストを確認したらrancher-desktopのコンテキストが作られてた。

```bash
$ kubectl config get-contexts
CURRENT   NAME                 CLUSTER           AUTHINFO          NAMESPACE
*         rancher-desktop      rancher-desktop   rancher-desktop
```
コンテキストがあるので、コンテキスト切り替えRancher Desktopにコンテキスト切り替え
```bash
$ kubectl config use-context rancher-desktop
Switched to context "rancher-desktop".

#カレントコンテキストの確認
% kubectl config current-context
rancher-desktop
```

試しにnamespaceを確認してみるとなんか動いてそうだった。
```bash
$ kubectl get namespace
NAME              STATUS   AGE
default           Active   9d
kube-system       Active   9d
kube-public       Active   9d
kube-node-lease   Active   9d
```

# とりあえずnginxをデプロイしてみる
```bash
$ kubectl run nginx --port=80 --image=nginx
pod/nginx created

#pod確認
$ kubectl get pod
NAME    READY   STATUS    RESTARTS   AGE
nginx   1/1     Running   0          74s
```
動いてそう！！

ローカルからアクセスしたいので、ポートフォワードすればいいのかと思い、一応Rancher DesktopのPort Forwardingを確認してみる。
<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3349326/300e03c0-3e60-cb34-c439-b82726acf393.png" width="50%">
とりあえずまだ表示されてなかった。
サービスがないので当然かなと思いつつ、サービスを作成してみます。

## サービス作成
kubectl exposeでサービス作成します。
```bash
$ kubectl expose pod nginx --port=8888 --target-port=80 --type=NodePort
service/nginx exposed
service/nginx exposed

#確認
kubectl get service
NAME         TYPE        CLUSTER-IP    EXTERNAL-IP   PORT(S)          AGE
kubernetes   ClusterIP   10.43.0.1     <none>        443/TCP          9d
nginx        NodePort    10.43.69.34   <none>        8888:32244/TCP   59s
```
もう一度Rancher Desktopで確認するとnginxが表示されました。
<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3349326/58fd2d48-6caf-7a79-eaed-defaf2065d1e.png" width="50%">
`Forward`をクリックしてportがデフォ値で入っていたのでそのまま「チェック」ボタンで設定する。
<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3349326/bd882d05-9989-2b1e-b5ed-0c6f180be41f.png">

#最後にローカル環境から疎通確認
curlで疎通確認してみる。localhostの↑で設定した52595　ポートにアクセスしてみる。

```bash
$curl http://localhost:52595
<!DOCTYPE html>
<html>
<head>
<title>Welcome to nginx!</title>
<style>
html { color-scheme: light dark; }
body { width: 35em; margin: 0 auto;
font-family: Tahoma, Verdana, Arial, sans-serif; }
</style>
</head>
<body>
<h1>Welcome to nginx!</h1>
<p>If you see this page, the nginx web server is successfully installed and
working. Further configuration is required.</p>

<p>For online documentation and support please refer to
<a href="http://nginx.org/">nginx.org</a>.<br/>
Commercial support is available at
<a href="http://nginx.com/">nginx.com</a>.</p>

<p><em>Thank you for using nginx.</em></p>
</body>
</html>
```

お、なんか無事出来ました。