概要
VSCode の Kubernetes 拡張機能について下記を記載する
- VSCode インストール
- VSCode へ Kubernetes Extension インストール
- Kubernetes Extension の Kubeconfig 設定
- VSCode から kubectl apply の実行例
1. VSCode インストール
OS 別に VSCode のインストール方法を記載する。(Windows は手元にいい環境がなかったため省略)
すでにインストール済みであればこの項目は実施不要。
Linux
参照先 Visual Studio Code on Linux
Ubuntu / Debian 系
下記実行でパッケージ設定からインストールまで完了する。(詳細 Debian and Ubuntu based distributions)
sudo apt install -y curl
curl https://packages.microsoft.com/keys/microsoft.asc | gpg --dearmor > packages.microsoft.gpg
sudo install -o root -g root -m 644 packages.microsoft.gpg /usr/share/keyrings/
sudo sh -c 'echo "deb [arch=amd64 signed-by=/usr/share/keyrings/packages.microsoft.gpg] https://packages.microsoft.com/repos/vscode stable main" > /etc/apt/sources.list.d/vscode.list'
sudo apt -y install apt-transport-https
sudo apt -y update
sudo apt -y install code
RHEL/Fedora/CentOS 系
下記実行でパッケージ設定からインストールまで完了する。
(CentOS7はyum, CentOS8ではdnfなので注意) (詳細 RHEL, Fedora, and CentOS based distributions)
sudo rpm --import https://packages.microsoft.com/keys/microsoft.asc
sudo sh -c 'echo -e "[code]\nname=Visual Studio Code\nbaseurl=https://packages.microsoft.com/yumrepos/vscode\nenabled=1\ngpgcheck=1\ngpgkey=https://packages.microsoft.com/keys/microsoft.asc" > /etc/yum.repos.d/vscode.repo'
#CentOS8 or Fedora
sudo dnf check-update
sudo dnf install -y code
#CentOS7
sudo yum check-update
sudo yum install -y code
共通
インストール後はShellにて下記で起動可能。
$ code
MacOS
ダウンロードサイトから他ソフト同様ダウンロードしてインストールする。
ダウンロードが終わるとダウンロードフォルダに「VSCode-darwin-stable.zip」が保存されているので開く。
(Safariの場合は展開済みの場合がある(.zipではなくVisualStuioCodeそのものがある場合は下記は不要))
アーカイブマネージャで展開され、アプリケーション「Visual Studio Code」が
ダウンロードフォルダに配置されるので実行する。
アプリケーションとして登録する場合は、「Visual Studio Code」を「アプリケーション」へドラッグアンドドロップしておくことで配置できる。
2. VSCode Kubernetes Extension インストール
VSCodeを起動し下記の手順で Kuberntes用のExtention をインストールする。
VSCodeを再起動すると横に Kubernetes のExtension のメニュー(Kubernetesのマーク)が増えている。
kubectl等が見つからない場合は、依存性のパッケージインストール要求が出てくるので、
「Install dependencies」をクリックしてインストールする。
※この際に解決されダウンロードされたものはデフォルトでは「~/.vs-kubernetes/tools/」のパス配下へ保存されます
3. Kubernetes Extension Kubeconfig 設定
kubeconfigを設定しVSCodeからkubernetesクラスタへアクセスできるように設定する。
設定方法は複数パターンがあるので、下記3パターンで記載する。
- デフォルト参照パスへの配置
- デフォルトパス以外のkubeconfigの参照
- 複数のkubeconfigの設定・切替
1. デフォルト参照パスへの配置
デフォルトでは「~/.kube/config」が参照される。
すでにkubectl等でVSCodeを入れたホストに配置されている場合は、
上記が参照された状態でVSCodeが立ち上がる。
※ 1クラスタのみを対象にする場合はこれだけで十分だと思います
2. デフォルトパス以外のkubeconfigの参照
kubeconfig ファイルを指定することも可能。
VSCodeのホストにkubeconfigがない場合は、既存で使用しているkubeconfigをダウンロードか別途用意する。
kubesprayでインストールしている場合は、マスターノードにある /root/.kube/config を取得(コピーなど)するとそのまま使える。
kubesprayでのkuberntesクラスタ構築例
用意したkubeconfigは 「CLUSTERS」 の「…」を開いて「Set Kubeconfig」を選択し、
「+Add new kubeconfig」を選択(クリック)する。
ファイル選択から指定したい kubeconfig(/root/.kube/configを持ってきた場合はそのファイル) を指定し開く。
kubeconfigの設定が完了し、kubernetesクラスタへアクセスができると、
kubernetesのリソース情報を VSCode 上から確認できるようになる。
3. 複数のkubeconfigの設定・切替
VSCodeの設定(setting.json)を編集することで複数のkubeconfigを設定しておくことも可能。
※2.の方法で追加していくことも可能です。複数の場合はjsonでの管理を意識した方が後々管理しやすいと思います
- 左下の⚙(歯車)をクリック
- 設定(Setting)をクリック
- 拡張機能(Extension)をクリックして広げる
- Kubernetes config...をクリック
- setting.jsonで編集(Edit setting.json)をクリック
setting.jsonの「vs-kubernetes」の設定を編集する。
- "vs-kubernetes.knownKubeconfigs" : 配列で複数のkubeconfigを指定できる
- "vs-kubernetes.kubeconfig": 使用するkubeconfigを指定できる
切替方法はCLUSTERSのSet Kubeconfigを開いて、使用したい方のkubeconfigをクリックすることで切り替えができる。
4. VSCode から kubectl apply の実行例
VSCodeからの操作の一例として下記記載する。
- マニフェストからのPodのcreate
- マニフェスト編集でのPodのapply
1. マニフェストからのPodのcreate
下記は例で作成するnginxのPodを構築するマニフェスト。
(VSCodeではresource.limitsを書かないと自動で警告を出してくれるので、limitsを適当に書いている)
コマンドパレットから「Kubernetes: Apply」を選択する(kube applyなど打てば下に出てくるので選択する)
(コマンドパレットはCtrl + Shift + p もしくは 表示(View)からコマンドパレット(Command Pallet...)で表示可能)
右下に「Create」するかが聞かれるので「Create」をクリックする。
2. マニフェスト編集でのPodのapply
1.で作成したPodのimageを1.12から1.13へ変更する例として下記のように1.のマニフェストを編集する。
1.と同様に「Kubernetes: Apply」をコマンドパレットから使用する。
1.(create時)とは異なり、既存リソースにあるため、差分表示がされ、「Apply」するかが問われるので、
差分が問題ないことを確認してから「Apply」をクリックして適応できる。
おわりに
VSCode で Kubernetes 拡張機能について概要を記載した。
Apply 時に差分を確認してから Apply ができたり、yaml で resources.limits を書かないと警告をしてくれたり、便利そうなことが見えてきた。
ただ、実際の運用ではCI/CDツールを整備などするため、手動でapplyするのは稀かもしれない。
利用はこれからなので、いろいろ探っていきたい。