BETA

KubeadmでKubernetesをセットアップ

投稿日:2019-12-21
最終更新:2019-12-21

参考にしたサイト

Installing kubeadm
2019年版・Kubernetesクラスタ構築入門

kubeadmのセットアップ

2019/12/21現在、kubeadmはiptablesがlegacyでないと動かないため、iptablesをlegacyに変更。再起動したほうがいいかも?
(公式の日本語版に記載がなかったのではまった

sudo update-alternatives --set iptables /usr/sbin/iptables-legacy  
sudo update-alternatives --set ip6tables /usr/sbin/ip6tables-legacy  
sudo update-alternatives --set arptables /usr/sbin/arptables-legacy  
sudo update-alternatives --set ebtables /usr/sbin/ebtables-legacy  
  • kubeadmのセットアップ
    --pod-network-cidrはPod間通信に使うため現在のネットワークとかぶらない範囲を指定。Flannelの初期値は10.244.0.0/16

      kubeadm init --pod-network-cidr=10.128.0.0/16  
    • 設定ファイルを利用ユーザのホームディレクトリにコピー
      mkdir -p $HOME/.kube  
      sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config  
      sudo chown $(id -u):$(id -g) $HOME/.kube/config  
  • Flannelのセットアップ
    Cluster Networking
    kubernetesは初期状態ではコンテナ間の通信を行ないため、仮想ネットワークに関するライブラリが必要。
    今回はarm環境でも使えるFlannelを利用する。

    • Flannelの定義ファイルを取得

      wget https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.yml  
    • Network定義を修正

      {  
        "Network": "10.244.0.0/16",     → 10.128.0.0/16  
        "Backend": {  
            "Type": "vxlan"  
        }  
      }  
       
    • Flannelを適用

      kubectl apply -f kube-flannel.yml  
  • その他コンピュータのセットアップ
    kubeadm init 時に出力されたjoinのコマンド、またはkubeadm token create --print-join-commandを実行して出力されたコマンドを適用する

      kubeadm join <マスターノードのIPアドレス>:6443 --token <トークン> --discovery-token-ca-cert-hash <証明書ハッシュ>  
    • 各ノードの確認。
      すべてReadyとなっていれば完了

      kubectl get nodes  
      
      NAME             STATUS   ROLES    AGE   VERSION  
      raspberrypi3     Ready    <none>   45h   v1.17.0  
      raspberrypi4-1   Ready    master   45h   v1.17.0  
      raspberrypi4-2   Ready    <none>   45h   v1.17.0  
      
  • 削除時
    kubeadm resetで削除が行える。
    この際、マスタノードを先に初期化しているとワーカーノード削除時に怒られるのでマスタ以外のノードから削除するほうが楽。
    削除後ネットワークのゴミが残るため削除する。
      ip link delete cni0  
      ip link delete flannel.1  
技術ブログをはじめよう Qrunch(クランチ)は、プログラマの技術アプトプットに特化したブログサービスです
駆け出しエンジニアからエキスパートまで全ての方々のアウトプットを歓迎しております!
or 外部アカウントで 登録 / ログイン する
クランチについてもっと詳しく

この記事が掲載されているブログ

よく一緒に読まれる記事

0件のコメント

ブログ開設 or ログイン してコメントを送ってみよう