モーダルを閉じる工作HardwareHub ロゴ画像

工作HardwareHubは、ロボット工作や電子工作に関する情報やモノが行き交うコミュニティサイトです。さらに詳しく

利用規約プライバシーポリシー に同意したうえでログインしてください。

工作HardwareHub ロゴ画像 (Laptop端末利用時)
工作HardwareHub ロゴ画像 (Mobile端末利用時)

Rancher で構築した kubernetes クラスタのアップグレード手順

モーダルを閉じる

ステッカーを選択してください

モーダルを閉じる

お支払い内容をご確認ください

購入商品
」ステッカーの表示権
メッセージ
料金
(税込)
決済方法
GooglePayマーク
決済プラットフォーム
確認事項

利用規約をご確認のうえお支払いください

※カード情報はGoogleアカウント内に保存されます。本サイトやStripeには保存されません

※記事の執筆者は購入者のユーザー名を知ることができます

※購入後のキャンセルはできません

作成日作成日
2019/10/30
最終更新最終更新
2022/03/04
記事区分記事区分
一般公開

目次

    アカウント プロフィール画像 (サイドバー)

    仕事では Kubernetesの運用を中心に、GitLabとの連携も担当するインフラエンジニア。

    0
    ステッカーを贈るとは?

    RancherOS 等、docker が使える何らかの OS で Rancher によって構築した kubernetes クラスタのアップグレードを行うためには、以下のようにします。

    v2.1.5 の Rancher で構築した k8s クラスタに存在する脆弱性 CVE-2019-11253 への対応がなされた v2.3.2 に更新したい場合などに必要になります。

    検証のための kubernetes クラスタを構築

    検証のために v2.1.5 で古いバージョンの kubernetes クラスタを構築します。

    docker run --restart=unless-stopped --name=rancher -p 8443:443 rancher/rancher:v2.1.5
    

    https://localhost:8443

    バージョン 1.11 の k8s クラスタが構築されました。

    # Run kubectl commands inside here
    # e.g. kubectl get all
    > kubectl version
    Client Version: version.Info{Major:"1", Minor:"10", GitVersion:"v1.10.5", GitCommit:"32ac1c9073b132b8ba18aa830f46b77dcceb0723", GitTreeState:"clean", BuildDate:"2018-06-21T11:46:00Z", GoVersion:"go1.9.3", Compiler:"gc", Platform:"linux/amd64"}
    Server Version: version.Info{Major:"1", Minor:"11", GitVersion:"v1.11.6", GitCommit:"b1d75deca493a24a2f87eb1efde1a569e52fc8d9", GitTreeState:"clean", BuildDate:"2018-12-16T04:30:10Z", GoVersion:"go1.10.3", Compiler:"gc", Platform:"linux/amd64"}
    

    検証のために Deployment を一つだけ作成しておきます。

    kubectl run mydeployment --image=nginx
    kubectl get pods
    NAME                            READY     STATUS    RESTARTS   AGE
    mydeployment-65b9f8795d-7vqqj   1/1       Running   0          1m
    

    Rancher を停止してバックアップを作成

    こちらのページの手順にしたがって更新します。Rancher を停止します。

    docker stop rancher
    

    /var/lib/rancher ディレクトリのバックアップを作成します。

    docker create --volumes-from rancher --name rancher-data rancher/rancher:v2.1.5
    docker run --volumes-from rancher-data -v $PWD:/backup busybox tar zcvf /backup/rancher-data-backup-v2.1.5-20191030.tar.gz /var/lib/rancher
    
    du -h rancher-data-backup-v2.1.5-20191030.tar.gz
    16M     rancher-data-backup-v2.1.5-20191030.tar.gz
    
    docker rm -f rancher-data
    

    新しいバージョンの Rancher を作成

    バックアップした /var/lib/rancher をマウントして、新しいバージョン v2.3.2 の Rancher を作成します。

    tar zxvf rancher-data-backup-v2.1.5-20191030.tar.gz
    
    docker run --restart=unless-stopped --name=rancher-v2.3.2 -p 8443:443 \
      -v $PWD/var/lib/rancher:/var/lib/rancher \
      rancher/rancher:v2.3.2
    

    stop してある rancher コンテナとの port 8443 の競合は発生しません。rancher のバージョンとコンテナ名以外は変更しないようにします。ログインして左下のバージョンが v2.3.2 になっていることを確認します。

    古いコンテナはホストマシンの再起動時に問題になる (--restart=unless-stopped) ため削除します。

    docker rm -f rancher
    

    kubernetes クラスタの更新

    Rancher のバージョンが新しくなったため、利用できる kubernetes のバージョンも新しくなっています。クラスタの Edit を選びます。

    新しいバージョンを選択して Save します。

    更新が始まるためしばらく待ちます。時間がかかります。

    バージョン 1.16 に更新されました。

    # Run kubectl commands inside here
    # e.g. kubectl get all
    > kubectl version
    Client Version: version.Info{Major:"1", Minor:"16", GitVersion:"v1.16.1", GitCommit:"d647ddbd755faf07169599a625faf302ffc34458", GitTreeState:"clean", BuildDate:"2019-10-02T17:01:15Z", GoVersion:"go1.12.10", Compiler:"gc", Platform:"linux/amd64"}
    Server Version: version.Info{Major:"1", Minor:"16", GitVersion:"v1.16.2", GitCommit:"c97fe5036ef3df2967d086711e6c0c405941e14b", GitTreeState:"clean", BuildDate:"2019-10-15T19:09:08Z", GoVersion:"go1.12.10", Compiler:"gc", Platform:"linux/amd64"}
    

    Deployment は以前のままです。

    > kubectl get pods
    NAME                            READY   STATUS    RESTARTS   AGE
    mydeployment-65b9f8795d-7vqqj   1/1     Running   1          25m
    

    rancher-agent のバージョンは別途更新します。

    0
    詳細設定を開く/閉じる
    アカウント プロフィール画像 (本文下)

    仕事では Kubernetesの運用を中心に、GitLabとの連携も担当するインフラエンジニア。

    記事の執筆者にステッカーを贈る

    有益な情報に対するお礼として、またはコメント欄における質問への返答に対するお礼として、 記事の読者は、執筆者に有料のステッカーを贈ることができます。

    さらに詳しく →
    ステッカーを贈る コンセプト画像

    Feedbacks

    Feedbacks コンセプト画像

      ログインするとコメントを投稿できます。

      関連記事