LoginSignup
6
5

More than 5 years have passed since last update.

[コピペ用]Ubuntu16.04にkubeadmでkubernetesを構築する

Last updated at Posted at 2018-11-29
  • 構築時にコマンドをコピペする用の記事です
  • 一気に全コマンドコピペすると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は考慮されていない
  • その他はすべてデフォルト

手順

  1. Ubuntu16.04をセットアップ
  2. 全マシンで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
    
  3. masterノードで次を実行する

    kubernetes初期化
    kubeadm init
    
  4. kubeadm initの実行結果の末尾に表示される次の形式のコマンドをメモする

    メモるコマンド
    kubeadm join <ip>:6443 --token <token> --discovery-token-ca-cert-hash sha256:<sha>
    
  5. 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')"
    
  6. master以外の全ノードで4.でメモしたコマンドを実行する(Nodeのクラスタ参加)

動作確認

  • masterのrootユーザーで次を実行する

    kubectl get nodes
    
    • 全ノードが表示されてSTATUSREADYなら構築完了。master以外のROLES<none>で問題ない
  • PODを立ててみる

    • 次のtest.ymlを作成
    test.yml
    apiVersion: 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に対してwgetindex.htmlがダウンロードされればOK

参考

dockerのインストール
kubeadmのインストール
kubernetesの初期化

6
5
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
6
5