概要
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クラスタ構築例
![スクリーンショット 2020-01-12 16.00.57.png](https://qiita-user-contents.imgix.net/https%3A%2F%2Fqiita-image-store.s3.ap-northeast-1.amazonaws.com%2F0%2F326183%2Fc4b1608c-ac17-36fa-2073-29557db73d2c.png?ixlib=rb-4.0.0&auto=format&gif-q=60&q=75&s=7fc69400dc21280db514e62a14de3e2f)
用意したkubeconfigは 「CLUSTERS」 の「…」を開いて「Set Kubeconfig」を選択し、
「+Add new kubeconfig」を選択(クリック)する。
![スクリーンショット 2020-01-12 15.50.42.png](https://qiita-user-contents.imgix.net/https%3A%2F%2Fqiita-image-store.s3.ap-northeast-1.amazonaws.com%2F0%2F326183%2Fad8d76d1-7c38-889a-706e-cd89be24154f.png?ixlib=rb-4.0.0&auto=format&gif-q=60&q=75&s=3b0bb6c9ac30bffe5fe9d0c05d428f9c)
![スクリーンショット 2020-01-12 15.50.58.png](https://qiita-user-contents.imgix.net/https%3A%2F%2Fqiita-image-store.s3.ap-northeast-1.amazonaws.com%2F0%2F326183%2Faba1ce30-1fea-c0b1-da47-f37b46641e72.png?ixlib=rb-4.0.0&auto=format&gif-q=60&q=75&s=25798b0b815d7afa05fda9e561cc0d68)
ファイル選択から指定したい 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)をクリック
![スクリーンショット 2020-01-13 13.01.44.png](https://qiita-user-contents.imgix.net/https%3A%2F%2Fqiita-image-store.s3.ap-northeast-1.amazonaws.com%2F0%2F326183%2F20ba3ae0-e80b-c8ef-9812-10765503c0ca.png?ixlib=rb-4.0.0&auto=format&gif-q=60&q=75&s=18ebed830a9a4f8901147214fdbd05ad)
setting.jsonの「vs-kubernetes」の設定を編集する。
- "vs-kubernetes.knownKubeconfigs" : 配列で複数のkubeconfigを指定できる
- "vs-kubernetes.kubeconfig": 使用するkubeconfigを指定できる
![スクリーンショット 2020-01-13 13.04.54.png](https://qiita-user-contents.imgix.net/https%3A%2F%2Fqiita-image-store.s3.ap-northeast-1.amazonaws.com%2F0%2F326183%2F6b16662a-1487-a23c-3091-fc6e89d09791.png?ixlib=rb-4.0.0&auto=format&gif-q=60&q=75&s=97a7e1498a089405d92d6470367434c0)
切替方法は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」をクリックする。
![スクリーンショット 2020-01-13 13.57.36.png](https://qiita-user-contents.imgix.net/https%3A%2F%2Fqiita-image-store.s3.ap-northeast-1.amazonaws.com%2F0%2F326183%2Fcf0adbb9-a7a3-8405-fb57-e7ca2270e61f.png?ixlib=rb-4.0.0&auto=format&gif-q=60&q=75&s=1e04f21e3aec28dba971ee7f72b47848)
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するのは稀かもしれない。
利用はこれからなので、いろいろ探っていきたい。