Windows10で「OKEによるKubernetesクラスターの利用」



この記事は [Oracle Cloud Advent Calendar 2018](https://adventar.org/calendars/3077) の12/14の記事として書かれています

Oracle の Managed kubernetes Cloud を触ってみようと思うと、[こちら](https://oracle-japan.github.io/paasdocs/documents/containers/oke/getting-started/)のチュートリアル「OKEによるKubernetesクラスターの利用」が参考になると思いますが、
![image.png](https://qiita-image-store.s3.amazonaws.com/0/240085/2b672ca1-811e-f452-e241-f77827ca9fba.png)
と 書かれていて『Windowsマシンしか持っていないから動かせないかも…。』と心配している人がいたので、『大丈夫。ローカルPCが Windowsでもちゃんと動きますよ。』ということでこれを書いています。( Windows10 Pro バージョン1803です。）

###全体の流れ
元チュートリアル記事の全体の流れにある
    1. OCI上での準備作業
    2. OKEクラスターをプロビジョニングする
    3. Kubernetesの管理用CLI(kubectl)をセットアップする

のうち、「1.OCI上での準備作業」と「2. OKEクラスターをプロビジョニングする」はローカルPCが関係しない部分なので、ここでは省略します。元記事を参照してください。

また、「3. Kubernetesの管理用CLI(kubectl)をセットアップする」の「3-2-1. OCIDの確認」もWebブラウザでのOCIの操作になるので割愛します。

元記事の手順通り、WebブラウザでユーザとテナントのOCIDを確認し、メモ帳にコピペしておいてください。

#「Kubernetesの管理用CLI(kubectl)をセットアップする」

1.kubectlのインストール
2.OCI CLI（とPython）のインストール
3.OCI CLIのsetup
4.kubectlのsetup

### kubectlのインストール

[公式サイト](https://kubernetes.io/docs/tasks/tools/install-kubectl/#install-kubectl-binary-using-curl)に書かれているCurlを使ったインストール方法で。

Windows10には標準でCurlコマンドがあるので、それを使いました。
公式サイトには
```curl -LO https://storage.googleapis.com/kubernetes-release/release/v1.13.0/bin/windows/amd64/kubectl.exe```
のようにオプションを指定していますが、Windows版Curlで同じオプションの指定の仕方がわからなかったので、URLのみ指定してインストールしてしまいました。が、動いているようなので大丈夫かな。
![image.png](https://qiita-image-store.s3.amazonaws.com/0/240085/31e264ce-4b61-3e49-2207-472c0f5ba80a.png)

確認のため
```kubectl version```
と打つとバージョンが確認できます。まだ接続設定していないので接続エラーが出てます。
![image.png](https://qiita-image-store.s3.amazonaws.com/0/240085/cf3f55ed-2349-96af-0b9f-89a1bbbac6c5.png)

### OCI(Oracle Cloud Infrastructure) CLI とPython のインストール

PowerShellを管理者として実行して、 [OCI CLI インストールの公式チュートリアル](https://docs.oracle.com/cd/E97706_01/Content/API/SDKDocs/cliinstall.htm)の「Windows ComputerにCLIをインストール」に書かれているコマンドをコピーして実行するだけです。

```
Set-ExecutionPolicy RemoteSigned
```
```
powershell -NoProfile -ExecutionPolicy Bypass 
-Command "iex ((New-Object System.Net.WebClient).DownloadString
('https://raw.githubusercontent.com/oracle/
oci-cli/master/scripts/install/install.ps1'))"
```
このとき、ローカルPCにPythonが入っていないと「一緒に入れますか？」と聞いてくれるので「はい（Y）」を選択してください。

![image.png](https://qiita-image-store.s3.amazonaws.com/0/240085/4ebe8e31-14eb-f3b7-86bc-6ead69b48e1c.png)


OCIがきちんとインストール出来たかどうか、helpをコマンドで確認します。
```oci.exe --help
```
![image.png](https://qiita-image-store.s3.amazonaws.com/0/240085/d02450ec-920d-7fa5-02e0-ace6969dd378.png)

インストールが確認できたので、環境変数のPATHにoci.exeがインストールされているディレクトリを追加しておきます。

###OCI CLIのsetup
インストールしたOCI CLIに、Oracle Cloudとの接続情報を設定します。

```oci.exe setup config```

を実行すると、1行づつ設定値の入力を求められます。
具体的な設定値と公開鍵の登録方法は元記事の「3-2-2. OCI CLIのセットアップ」を参照してください。

###kubectlのsetup

kubetctlのconfigファイルを生成するためのコマンドの参照方法は元記事を確認ください。
kubetctlのconfigファイルは、Homeディレクトリの配下に作られるので、
```　> $env:homepath　
```で確認したHomeディレクトリの下に「.kube」ディレクトリを作成してください。

次に画面からコピーしたこんな感じのコマンドを、
```　oci ce cluster create-kubeconfig --cluster-id ocid1.cluster.oc1.iad.xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx --file $HOME/.kube/config　```

oci　→　oci.exe
$HOME →　さっき確認したHomeディレクトリ
に変更して、PowerShellで実行します。

実行後、先ほど作った「.kube」ディレクトリの下にconfigファイルが作成されていることを確認してください。

最後に
```　kubectl get nodes ```　
を実行して、ノード情報をとって来れることを確認したらOKです。
![image.png](https://qiita-image-store.s3.amazonaws.com/0/240085/7dcdc6ad-b2e2-3887-c22c-1a47255ee55f.png)