LoginSignup
6
6

More than 3 years have passed since last update.

Docker Desktop for WSL2のKubernetesコンテキストをWSL2と同期する

Posted at

Windows側のシステムトレイ上のDocker Desktop for WSL2メニューにあるKubernetesコンテキストを、WSL2側の~/.kube/configと同期するための手順です。同期することで以下のようなことができるようになります。

  • WindowsのシステムトレイにあるDocker DesktopメニューからKubernetesコンテキストの参照および切り替えができる。切り替えた場合はWSL2側にKubernetesコンテキストが反映される。
  • WSL2側から~/.kube/configを更新した場合に、Docker DesktopメニューのKubernetesコンテキストに反映される。

NOTE:
そもそも何故この同期設定が盛り込まれてないのかが個人的には疑問です。どこかのタイミングでDocker Desktop for WSL2がこの同期設定に対応するかもしれないので、その際にはコメントをいただければ幸いです。

設定手順

WSL2およびDocker Desktop for WSL2がインストール済みで利用できる状態を想定しています。

  1. Windows側(Docker Desktop)に%USERPROFILE%\.kube\configを作成する。既に存在する場合はスキップする。
  2. Windows側の~/.kube/configを参照するシンボリックリンクをWSL2側に作成する。WSL2のターミナルから以下のようなコマンドを実行することで作成できる。既にWSL2側に~/.kube/configがある場合はバックアップを取るか削除すること。

    # システムドライブがCドライブ、Windowsユーザがtaroの場合
    # NOTE: c, taroの部分は適切な値に置き換えること
    mkdir -p ~/.kube
    ln -s /mnt/c/Users/taro/.kube/config $HOME/.kube/config
    

これで設定完了となります。
なお、この設定手順ではWindows側の./kube/configがマスタファイルになります。

以下のようにWSL2側のKubernetesコンテキストとWindows側のDocker DesktopメニューのKubernetesコンテキストが同期していることが分かります。

k8s-context-menu-01.png

以下はkindのKubernetesクラスタをWSL2上から作成した直後の画像です。kindのKubernetesクラスタが作成されるとWSL2側の~/.kube/configのKubernetesコンテキストが追加&更新されますが、これがWindows側のDocker DesktopメニューのKubernetesコンテキストと同期していることが分かります。

k8s-context-menu-02.png

NOTE:
ちなみにWSL2のターミナルのシェルプロンプトの「絵文字 + カラフル文字」でのKubernetesコンテキスト表示はkube-ps1.shを利用して実現してます。Kubernetes上での開発や検証が多い人にはお勧めです。

6
6
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
6