Debian stretch に Kubernetes をインストール
Docker Swarm は普通に動くようだったので Kubernetesも試した。
エラーでなかなか進まず色々試してたら汚れてきたのでカッとなってVMwareで新しい環境を作ってテストした。
テストだからって普段使いのLinuxで試さない方が良さそう。
taskselで全部のチェックを外してインストールした状態からスタート。
apt-get install ssh vim
ホスト名は k8smaster.k8s.dev で。
VMware fusionだとネットワークアダプタの詳細でMACアドレスを確認しつつ
sudo vi /Library/Preferences/VMware\ Fusion/vmnet8/dhcpd.conf
host vmnet-k8smaster { hardware ethernet 00:0C:29:CC:1D:30; fixed-address 172.16.87.11; }
で固定IPにしておくとやりやすい。VMwareは一度タスクキルする。
/Applications/VMware Fusion.app/Contents/Library/vmrun -T fusion start \ ~/Documents/Virtual\ Machines.localized/debian9.vmwarevm/debian9.vmx nogui
これでウィンドウ無しで起動できるけど面倒なので閉じるときのダイアログでバックグラウンド実行でもいいかなって。
初期設定など。
update-alternatives --config editor # usr/bin/vim.basic を選択 apt install sudo visudo # 一般ユーザー ALL=NOPASSWD: ALL sudo -i
ssh-keygen cp .ssh/id_rsa.pub .ssh/authorized_keys ssh k8smaster.k8s.dev
ローカルでも sshでFQDN でログインできる必要がある?なんか認証エラーになったので。
http://d.hatena.ne.jp/n314/20180820/1534731160
前回の記事の通りやってDockerを入れる。最新版にk8sが対応していないみたいだけど多分大丈夫っぽいnoteがあったので最新版で。
スワップは使えないのでオフ。
cat /proc/swaps swapoff -a vi /etc/fstab
自動インストールしたけどswapオフにしてパーティション切れば良かった。
https://kubernetes.io/docs/setup/independent/install-kubeadm/
curl -s https://packages.cloud.google.com/apt/doc/apt-key.gpg | apt-key add - cat <<EOF >/etc/apt/sources.list.d/kubernetes.list deb http://apt.kubernetes.io/ kubernetes-xenial main EOF apt-get update apt-get install -y kubelet kubeadm kubectl apt-mark hold kubelet kubeadm kubectl
ちょっとしたアップデートでガラッと動作が変わるからholdしろってことだよね多分。
kubeadm init --pod-network-cidr=10.244.0.0/16
完了メッセージは後で実行する。
rootじゃなくて良い作業は一般ユーザーで実行する。と言ってもパスワード無しでrootになれる必要あるよね。どういう思想なんだろう。
export KUBECONFIG=/etc/kubernetes/admin.conf kubectl apply -f https://raw.githubusercontent.com/coreos/flannel/v0.10.0/Documentation/kube-flannel.yml
/etc/cni/net.d/ にファイルが作られる。
https://kubernetes.io/docs/setup/independent/create-cluster-kubeadm/
これ以上はアーキテクチャとか仕組みとかが分かってないとマニュアルコピペじゃ無理そうなので後でやる。クラウド環境をローカルで試そうと思ったらVMwareのゲストめっちゃ立ち上げないとダメだよね。みんな富豪的に全部クラウドでやってるのかな。こういう環境が必要な人は短期間インスタンス立ち上げるぐらいの費用は誤差なのか。
ここまでで docker ps で 16コンテナ立ち上がってるんだけど…。そのうちマイクロカーネルが流行らずモノリシックカーネルに変わってきている的なことにならないんだろうか。
削除メモ。
apt remove --purge kubelet kubeadm kubectl kubernetes-cni で消えないファイルを消す。
rm -rf /var/lib/etcd rm -rf /etc/kubernetes/ rm -rf /var/lib/kubelet/ rm -rf /etc/cni/