- 構築時にコマンドをコピペする用の記事です
- 一気に全コマンドコピペすると
apt-get install
以降のコマンドが実行されなかったので分割してます
構築される構成
- OSはUbuntu16.04。18.04でも同一手順で問題ないと思うが未検証
- Kubernetesバージョンはコマンド実行時点で最新のもの。2018/11/29現在で1.12.3
- Masterノード一台、他をNodeとする構成
- Dockerバージョンは18.06.1-ce。2018/11/29現在でKubernetesがサポートする中で最新。
- CNIはWeave
- プロキシやACLは考慮されていない
- その他はすべてデフォルト
手順
-
Ubuntu16.04をセットアップ
-
全マシンでrootユーザーで次のコマンドを実行する
事前準備(swap無効化と依存パッケージインストール)swapoff -a sed -e "/^UUID=[a-z0-9-]* swap/s/^/# /" -i.bak /etc/fstab apt-get update apt-get install \ apt-transport-https \ ca-certificates \ curl \ software-properties-common
Dockerインストールcurl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add - apt-key fingerprint 0EBFCD88 add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu \ $(lsb_release -cs) \ stable" apt-get update apt-get install -y docker-ce=18.06.1~ce~3-0~ubuntu
kubernetesインストール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 https://apt.kubernetes.io/ kubernetes-xenial main EOF apt-get update apt-get install -y kubelet kubeadm kubectl apt-mark hold kubelet kubeadm kubectl
-
masterノードで次を実行する
kubernetes初期化kubeadm init
-
kubeadm init
の実行結果の末尾に表示される次の形式のコマンドをメモするメモるコマンドkubeadm join <ip>:6443 --token <token> --discovery-token-ca-cert-hash sha256:<sha>
-
masterノードで次を実行する
kubectlセットアップとWeaveインストールmkdir -p $HOME/.kube sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config sudo chown $(id -u):$(id -g) $HOME/.kube/config kubectl apply -f "https://cloud.weave.works/k8s/net?k8s-version=$(kubectl version | base64 | tr -d '\n')"
-
master以外の全ノードで
4.
でメモしたコマンドを実行する(Nodeのクラスタ参加)
動作確認
-
masterのrootユーザーで次を実行する
kubectl get nodes
- 全ノードが表示されて
STATUS
がREADY
なら構築完了。master以外のROLES
は<none>
で問題ない
- 全ノードが表示されて
-
PODを立ててみる
-
次の
test.yml
を作成test.ymlapiVersion: v1 kind: Pod metadata: name: nginx-pod spec: containers: - name: nginx-container image: nginx ports: - containerPort: 80
-
kubectl create -f test.yml
を実行 -
kubectl get pods -o wide
を実行- IPが表示されるので、そのIPに対して
wget
。index.html
がダウンロードされればOK
- IPが表示されるので、そのIPに対して
-