macでやりました
インストール
raspbianのインストール
- https://www.raspberrypi.org/downloads/raspbian/ から、 Raspbian Stretch Lite のzipをダウンロード
- MicroSDをmacにさし、
sudo diskutil umount /dev/disk2s1
しておく - Raspbian Stretch Lite の zip 展開を行い、MicroSDに焼き込む
sudo dd bs=1m if=~/Downloads/2018-11-13-raspbian-stretch-lite.img of=/dev/disk2
- SSHを有効にする:
touch /Volumes/boot/ssh
- 起動してSSHする
- ID: pi
- PW: raspberry
cgroupの設定
/boot/cmdline.txt に、 cgroup_enable=cpuset cgroup_enable=memory
を追加しておく。
以下は例
dwc_otg.lpm_enable=0 console=serial0,115200 console=tty1 root=PARTUUID=af816d3b-02 rootfstype=ext4 cgroup_enable=cpuset cgroup_enable=memory elevator=deadline fsck.repair=yes rootwait
Docker のインストール
sudo apt-get install apt-transport-https ca-certificates curl software-properties-common curl https://download.docker.com/linux/raspbian/gpg | sudo apt-key add - cat << EOL | sudo tee /etc/apt/sources.list.d/docker.list deb [arch=armhf] https://download.docker.com/linux/$(. /etc/os-release; echo "$ID") $(lsb_release -cs) stable EOL sudo apt-get -y update sudo apt-get -y upgrade sudo apt-get -y install docker-ce
swapの無効
sudo dphys-swapfile swapoff sudo dphys-swapfile uninstall sudo update-rc.d dphys-swapfile remove
kubeadmのインストール
curl -fsSL https://packages.cloud.google.com/apt/doc/apt-key.gpg | sudo apt-key add -
kubernetes のセットアップ
sudo kubeadm config images pull sudo kubeadm init --pod-network-cidr=10.244.0.0/16
googleのoidcに対応させる
https://console.cloud.google.com/apis/credentials より、 OAuth クライアント ID の作成 -> その他 で作成する。
移行の設定は、以下の値を例にする
- client-id: 962700372558-u0gl7j6ea2cogcbn7hapbm6qgmbjo8o0.apps.googleusercontent.com
- client-secret: kELGAsnPJy4lFj418bCOLucu
apiserver
- kube-apiserver の引数に以下を追加する。
- 場所は /etc/kubernetes/manifests/kube-apiserver.yaml
- oidc-username-prefixは任意。設定しなければ何も入らない。
- --oidc-issuer-url=https://accounts.google.com - --oidc-client-id=962700372558-u0gl7j6ea2cogcbn7hapbm6qgmbjo8o0.apps.googleusercontent.com - --oidc-username-claim=email - "--oidc-username-prefix=oidc:"
kubectl側のoidc設定をする
- google用oidcヘルパーのインストールとtokenまわりの設定
- -w をつけると直接~/.kube/config に追加してくれる。
- -wを書かない場合は標準出力に設定内容が出るので自分で追加する。
go get github.com/micahhausler/k8s-oidc-helper k8s-oidc-helper --client-id 962700372558-u0gl7j6ea2cogcbn7hapbm6qgmbjo8o0.apps.googleusercontent.com --client-secret kELGAsnPJy4lFj418bCOLucu -w
メールアドレスでkubeconfigのuserに登録されているので、set-contextする
kubectl config set-context r8s --cluster=r8s --user=<k8s-oidc-helperで認証したメールアドレス>
これだけだとRBACに設定がないためなにもできない。
そのため、とりあえず雑にcluster-admin権限を付与する。
kubectl create clusterrolebinding --clusterrole=cluster-admin --user=oidc:<k8s-oidc-helperで認証したメールアドレス> admin