在 windows 下,可以很方便的利用 Goland 的 kubernetes 插件进行 kubernetes 资源清单的编写;
在 windows 下,安装 kubectl 工具,可以直接将所编写的 k8s 资源对象部署到 WSL2 Linux 子系统,很方便学习 k8s;
此方法也可以同样用来在 windows 下编写 Go 应用,然后在 Linux 子系统进行测试;

在 windows 下使用 kubectl

1. 下载 kuebctl.exe

本人使用的下载地址:
https://storage.googleapis.com/kubernetes-release/release/v1.18.0/bin/windows/amd64/kubectl.exe

将其存放某一目录下(本人路径为C:\kube\kubectl.exe),并添加环境变量:在 windows10 下使用 WSL2 Goland 进行 k8s YAML 编写及远程部署 - 图1

打开命令行窗口,输入kubectl命令测试一下是否工作:
image.png

2. 配置 kubeconfig

使用kubectl这种方式从一个client(Linux,Max,Windows 都可以)上访问 k8s 集群时,kubectl的正确运行依赖于一个配置文件,该配置文件的内容可以从k8s集群的control-plane,也就是Master节点上获取。

在k8s集群的Master节点上,文件/etc/kubernetes/admin.conf和文件$HOME/.kube/config的内容相同,也正是我们需要的内容。可以选择使用scp指令,或者直接将文件内容拷贝到 client节点的$home/.kube/config文件。此处的$home值读者根据自己的电脑设置来确定,可以尝试在运行kubectl config ...指令,那么系统会在相应路径下生成.kube目录(Windows10系统是这样的),而后将config文件放置其中即可。这一步做的事情也就是下面指令:

  1. $ scp root@<control-plane-host>:/etc/kubernetes/admin.conf home/.kube/config
  2. $ kubectl get nodes # 测试配置是否成功

来测试一下:
image.png

Goland 连接 WSL2 Linux 子系统远程开发

1. 配置 ssh 套件

在 win10 中装完 ubuntu 后,想 ssh 链接上,但是 ssh localhost 都显示失败。
这是由于 win10 中的 wsl ssh 错误所致,重新安装启用就可以了。

  1. $ sudo apt-get remove openssh-server
  2. $ sudo apt-get install openssh-server
  3. # 配置 sshd_config
  4. $ sudo vim /etc/ssh/sshd_config
  5. # 改为:
  6. # Port 22
  7. # PasswordAuthentication yes # 允许用户名密码方式登录
  8. $ sudo service ssh restart

2. 配置 Goland

首先是配置界面:
image.png
选择 Configuration 选项,或者是 setting 里面的 deployment 配置,配置界面如图:
image.png
Connection里面的设置:

  • SFTP host:填写服务器 ip
  • Root path:服务器的 go 项目存放路径,例如我配置的是 /home/k8s/k8s-training
  • User name:服务器账号
  • Password:服务器密码

image.png
Mappings里面的设置:

  • Local path:本地电脑的项目路径
  • Deployment path on server:具体某个项目的路径

配置完成!测试连接即可。

3. 把服务器项目下载到本地的项目文件中

Tools=》Deployment=》Browse Remote Host=》右键选择项目=》Download from here
image.png

4. 本地代码修改完成之后,上传到服务器更新

Tools=》Deployment=》Upload to xxx
image.png

通过 Goland 进行 k8s yaml 开发

Kubernetes 的插件功能包括:代码完成,检查,Kubernetes资源文件的快速修复,装订线中的图标以便于导航,弹出文档和实时模板。

安装 kubernetes 插件

image.png

使用 kubernetes 插件

  • 首先,Kubernetes 插件有一个内置的实时模板,可以让您快速创建所需的 YAML Kubernetes 资源文件类型:
    • 插件现在包含几个预定义的 Kubernetes 模板,可以通过键入其缩写来调用必要的 Live Template。

image.png
2018-03-02-14_52_26.gif

  • 如果要添加自己的实时模板或自定义现有模板,请转到 Settings > Live Templates > Kubernetes。

image.png

  • 代码完成现在适用于 YAML Kubernetes 资源文件。Kubernetes 插件提供了您可以在资源中使用的正确值。

KubCompletion-1.gif

  • 为了帮助您真正快速为 Kubernetes 创建所需的YAML定义文件,请键入所需的 keyValue 并调用 Smart Completion。新插件将自动完成以下所有级别的所有必需键。 SmartDeep.gif

  • 对于YAML Kubernetes资源文件,该插件提供了在标签定义和标签选择器之间导航的功能。使用装订线中的图标。

image10.gif

  • 如果标签与键和值的直接匹配,您还可以从标签选择器导航并跳转到编辑器内的标签定义。

image15.gif

  • 当您重命名YAML Kubernetes文件中的键或值时,该插件还将重命名它们的所有用法。

image8.gif

  • 每当您选择已弃用的Kubernetes属性时,Kubernetes插件都会提醒您(仅适用于YAML文件)。

image12.png

  • 除此之外,如果您尝试使用不适用于具有应用的apiVersionkind的指定元素的属性,您将收到YAML文件的警告

在 windows10 下使用 WSL2 Goland 进行 k8s YAML 编写及远程部署 - 图19

  • 该插件突出显示YAML Kubernetes资源定义文件中缺少键的元素,并提供快速修复以添加所需的键。

image13.gif

  • 您还可以通过按^ J(macOS)或Ctrl + QWindowsLinux)调用YAMLKubernetes资源文件中的任何键的文档。单击快速文档查找中的超链接以导航到更详细的信息。

在 windows10 下使用 WSL2 Goland 进行 k8s YAML 编写及远程部署 - 图21

通过 Goland 的 Terminal 使用 bash 命令

  • 在 Goland 中,打开 settings,设置相应的 bash 路径

settings–>Tools–>Terminal–>Shell path:D:\Program Files\Git\bin\bash.exe
在 windows10 下使用 WSL2 Goland 进行 k8s YAML 编写及远程部署 - 图22

  • 使用 sublime在 ${user} 这目录下创建两个文件:
    • .bash_profile
    • .bashrc
  • 例如:【C:\Users\John】,文件内容如下:

    • .bash_profile

      1. if [ -f ~/.bashrc ]; then . ~/.bashrc; fi
    • .bashrc

      1. alias ls='ls -F --color=auto --show-control-chars' # 使用ls命令的时候加上颜色
      2. export LC_ALL=zh_CN.UTF-8 # 设置终端打开的编码
      3. alias ll='ls -la -F --color=auto --show-control-chars'
  • 重启 terminal 即可使用 bash.exe 命令