k8sに入門するためにk3sから攻めてみようとしてk3os使ってみることにした記録
タイトルが長い。k3osインストールしてみたのでその記録。
この記事ではk3os v0.8.0を使用しています。
ISOダウンロードしてOSインストール
ISOはここからダウンロードできるので環境にあったものを選んで落とす。
ISOマウントして起動させる。
LiveCDになっているので普通にOSが起動してくるので、rancher
ユーザでログイン。パスワードはいらない。
そのままローカルディスクにインストールしたいので、
$ sudo k3os install
対話インストーラなので色々聞いてくるけど好みで。cloud initとやらに対応しているらしいけど、レガシーエンジニアの僕には関係なかった。
cluster組むならTokenを設定すること。
基本設定
インストールが終わったら、基本設定していく。
デフォルトだとDHCPでIP取ってくるようになってるから、まずはstaticに。
k3osはconnmanでネットワーク設定を行う。connmanって初めて聞いた。時代についていけてない。
$ sudo -i $ cd /var/lib/connman # ここに設定ファイルが入ってる $ ls # ディレクトリとファイルが1つずつ。ディレクトリ名をコマンドで使うのでここにcdしたほうが作業しやすい ethernet_hogehoge_cable settings $ sudo connman services # こいつがどうやらインターフェースのようだ *A0 Wired ethernet_hogehoge_cable $ sudo connman services ethernet_hogehoge_cable # 詳細設定が表示される $ sudo connman config ethernet_hogehoge_cable --ipv4 manual <ipv4 address> <subnet mask> <default gateway> --nameservers <nameserver address> # staticにipv4を設定 $ sudo connman config ethernet_hogehoge_cable --ipv6 off # ipv6は無効化にもできる $ sudo service connman restart # サービス再起動して設定を反映
ひとつに統一してほしい。
続いてホスト名も変えておこう。
$ sudo vi /var/lib/rancher/k3os/hostname # 中身を書き換えればOK $ sudo reboot
worker nodeデプロイ
せっかくだからcluster組みたいのでworker nodeもデプロイする。
masterとほぼ同じだけど、sudo k3os install
時にagentを選択して、URL of server:
って聞かれたらhttps://<master ip>:6443
を指定すること。
あと、Tokenも揃えること。
インストールが完了したらmaster nodeで確認してみよう。
$ kubectl get no NAME STATUS ROLES AGE VERSION k3os-14965 NotReady master 55m v1.16.3-k3s.2 k3os-18290 NotReady <none> 12m v1.16.3-k3s.2 k3os02 Ready <none> 9m16s v1.16.3-k3s.2 k3os01 Ready master 46m v1.16.3-k3s.2
ホスト名変えたからかNotReadyのエントリがある。。どうすればいいかは別途調査しよう。
Pod作ってみる
ここまで来たらあとはPod作ってみよう!
$ kubectl create -f nginx.yaml replicationcontroller/nginx created service/nginx-nodeport created $ kubectl get pods NAME READY STATUS RESTARTS AGE nginx-jcxj8 1/1 Running 0 2m48s $ kubectl get -f nginx.yaml NAME DESIRED CURRENT READY AGE replicationcontroller/nginx 1 1 1 2m52s NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE service/nginx-nodeport NodePort 10.43.212.175 <none> 80:30154/TCP 2m52s
ブラウザからhttp://<master/worker ip>:30154/
にアクセスするとnginxのwelcome pageが。
manifestファイルとかresourceとかわからんので勉強します。