ログ日記

作業ログと日記とメモ

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

ローカルでも sshFQDN でログインできる必要がある?なんか認証エラーになったので。


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/