#0. 何の目的か
- ソフトウェアデザイン2019年4月号の「Ubuntu Monthly Report(Ubuntu Serverでkubernetesを動かす)」を参考にk8sを構築する!(写経して学ばせていただきます)
- CKA(Certified Kubernetes Administrator)の合格しよう!(試験環境がUbuntu)
- RHEL以外にUbuntuも習得しよう!
#1. Ubuntuでの固定IPアドレス設定
DHCP設定にしてたのでOS再起動したらk8sが動かなくなりました。
OSインストール時に固定IPアドレスを選択することもできるのですが、定義ファイルを以下のように変更しました。
/etc/netplan/50-cloud-init.yaml
network:
ethernets:
enp0s3:
addresses:
- 192.168.1.100/24
gateway4: 192.168.1.1
nameservers:
addresses:
- 192.168.1.1
version: 2
以下のコマンドで定義ファイルを有効化させます。
$ sudo netplan apply
定義ファイルはyamlファイルになってまして、記載方法の詳細は以下のサイトに書かれています。
netplan
#2. VirtualBoxのネットワーク設定
それから、以下の設定変更を行うことでssh接続ができるようになります。
#3. CPUは2個以上
1個だと以下の様にエラーとなります...
$ sudo kubeadm init --pod-network-cidr=10.244.0.0/16
[sudo] password for shinj:
[init] Using Kubernetes version: v1.14.1
[preflight] Running pre-flight checks
[WARNING IsDockerSystemdCheck]: detected "cgroupfs" as the Docker cgroup driver. The recommended driver is "systemd". Please follow the guide at https://kubernetes.io/docs/setup/cri/
error execution phase preflight: [preflight] Some fatal errors occurred:
[ERROR NumCPU]: the number of available CPUs 1 is less than the required 2
[preflight] If you know what you are doing, you can make a check non-fatal with `--ignore-preflight-errors=...`
#4. マスターノードでPodのデプロイを許可
ここだけ手順の通りに出来なかったので、どうやったかを残しておきます。
$ kubectl get node
NAME STATUS ROLES AGE VERSION
ubuntu-server Ready master 30m v1.14.1
$ kubectl describe node ubuntu-server | grep Taints
Taints: node-role.kubernetes.io/master:NoSchedule
$ kubectl taint nodes ubuntu-server node-role.kubernetes.io/master:NoSchedule-
node/ubuntu-server untainted
$ kubectl describe node ubuntu-server | grep Taints
Taints: <none>
記事通りに操作を行っても、途中で疑問に感じたり、あれっ?となって調べたり、学べることは多いです