ConoHaからOracle Cloud Infrastructureに移行

https://blog.potproject.net/2019/11/05/oracle-cloud-kubernetes-k3s-cluster/

この記事からVM２つとあり、ちょうどConoHaちゃんで２つVPS立てていたので移動を決意。
ついでに、k3s遊んでみたかったのでこの記事を参考にしてはまったところのメモ。

基本的に記事にある通り、セキュリティルールが大変でしたのでそのあたりのメモとして。


### ハマり１

デフォルトがoracle linux?になっていて
作ってから知って、ま似たようなものだろうと思ってそのまま進めました。
そのため、iptablesあたりがデフォルト違うのかpingが通らないとかあったり、その程度の違いなのでk3sのインストールとかも普通にできました。


### ハマり2

記事にもある通り、public ip付与されないです。そしてpulic ipを付与する方法がなかなかわかなく。。
管理画面変わるかですが、現状（2019/11/16)のやったこと。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/27299/b78f50c9-a604-8406-d361-0911b007fbb6.png)


この画像ではすでに設定できているけど、その前は「設定不可」とか書かれていて。
設定可能にするには何を変えればいいのか混乱しました。

結論
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/27299/e39c18cb-0839-26c6-9414-f2161da716eb.png)
アタッチされたVNICからVNICをクリックして

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/27299/436e9429-6c80-0360-9f8c-b0c59dee6d41.png)
IPアドレスをから編集を
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/27299/5d70e8d2-c18a-aa38-abce-11c45c0a5b75.png)
で「パブリックIPなし」になっているので「エフェメラル・パブリックIP」に変更でpulic ipが付与されました。


### ハマり3

これでいよいよ、sshログインもできて構築開始だと
k3sのインストールは特はできるけど、agentの方がReadyにならなく。。
firewall-cmdだけでなく、VCNのセキュリティの設定も変えないとでした。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/27299/203909e0-edbf-daf1-9682-8076930135ef.png)
仮想クラウド・ネットワークのリンクをクリックして
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/27299/7ef47dbd-3847-3475-a211-bebfd55ea3a2.png)
パブリックサブネットから
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/27299/5785cc9a-127b-f763-8fb1-47c9077b8a9f.png)
セキュリティリストから
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/27299/034823ff-a7c1-b7b8-9a2c-8f2486f81dca.png)
ここに設定追加


### ハマり4

これでうまくいくかと思いきや、接続はできたけど今度はk3s-agentさん

```
Nov 12 06:36:06 instance-20191107-1037 k3s: time="2019-11-12T06:36:06.543326740Z" level=error msg="Node password rejected, contents of '/var/lib/rancher/k3s/agent/node-password.txt' may not match server passwd entry"
```

このエラーが原因は、できなくて何度もk3s-agent-uninstall.shして再インストールをしていたから見たでした。masterの方に何かすればなのかもですが、よくわからなかったのでmasterの方もuninstallしたら解決しました。
困ったらuninstallできる初期であればバルス即決！！


### ハマり5

どんだけつまずいているだと、なりこの辺りになると記事と同じくcentosにしようかと心の声が聞こえてきましたが、意地になってきてそのまま進めています。
次はいよいよ、ロードバランサーの設定にきをつける点？は「always free対象」の10Mbpsがデフォルト選択されていないのでalways free対象で進める時は変更をお忘れなくです。

鬼門はやはりセキュリティ設定です。
まず、health checkが通らない点です。
そうだろうなと思っていましたがやっぱり通りません。
セキュリティリストから何を設定すればいいのか
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/27299/c9e5a497-30d9-c4ca-d2d7-9d1dc71f8cac.png)
そこで、0.0.0.0/0というやってはいけない？設定に！
どうすればいいか知っている方教えてくださいませ。


こうして、ようやく記事と同じところまでスタートラインに立ちました！！

### ConoHaちゃんから移動準備

いよいよ、ConoHaちゃんで動かしているサービスの移動です。

そこで、ローカルから操作したいなと思い調べてみると。
https://tech.taiko19xx.net/entry/2019/04/18/012754

まさにピンポイントの記事がありました！

ここまでくると流石にはまることもなく、
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/27299/c47e8da1-0d06-e961-5364-a951dfefafb7.png)
この設定を追加するだけでした。
流石に、0.0.0.0/0にしないでおきました。

```
% kubectl get pods
NAME                                     READY   STATUS    RESTARTS   AGE
whoami-deployment-5ff8cd9445-vjgcm       1/1     Running   0          3d18h
whoami-deployment-5ff8cd9445-ppt2j       1/1     Running   0          3d18h
```

ローカルからこの結果！感動です。


### Docker Image化

ConoHaちゃんで動かしているものをDocker Image化する作業に、

Docker Imageにするまでは特につまるところもなかったですが、
Package Registryにするのにまた詰まります。

GitHub Package Registry
https://qiita.com/minebreaker/items/0a031e201829e68e4f21

こちらの記事を参考にやってみたのですが、どうしても

```
unauthorized: Your request could not be authenticated by the GitHub Packages service. Please ensure your access token is valid and has the appropriate scopes configured.
```
となってしまう。。

GitHubの方、2FA設定しているからかなと思って、tokenを発行して試してみたりしたけど解決できずに。


そこでこの記事を見つけて、GitLabで試してみようと

https://qiita.com/masakura/items/802f4b8ce322d2543c80

https://docs.gitlab.com/ee/user/packages/container_registry/

GitLabの方も2FAにしているけど、こっちはtoken使って無事pushに成功


### deploy

いよいよdeployするだけとなり

https://qiita.com/ktateish/items/f094433e92310ad737a8

そのままこちらの記事のままdeploy成功！！

```
$ kubectl create secret docker-registry reggitlab --docker-server=https://registry.gitlab.com/ --docker-username=${token_name} --docker-password=${token} --docker-email=${email}
```

docker-usernameをtoken設定した時の名前に、docker-passwordを発行したtokenにしたくらいです。


deployは成功しましたが修正したいところが出てきました。。


変更する場合どうしたらいいのか、ここにも神記事がありました。

https://qiita.com/theoden9014/items/6e1ba5294c6d6bd37538
https://qiita.com/loftkun/items/eeae3d79226491958323



これでDocker Image更新してから

```
$ kubectl patch deployment/sheets-api-deployment -p "{\"spec\": {\"template\": {\"metadata\": {\"labels\": {\"date\": \"$(date +'%s')\" }}}}}
```

更新できた！！感動です。


最後に、ConoHaさんのVPSには特に不満があったわけでないですが
お値段も500からとかですので。

ConoHaさん今までありがとう！
キャラ好きです！