一. 前言

Okteto 是一个通过在 K8s 中来开发和测试代码的应用程序开发工具。可以通过Okteto在 K8s 中一键为我们启动一个开发环境,或是安装一个docker容器。非常简单方便。

更多内容可参考:K8s,Docker,Okteto 的概念理解与联系

二. 前置环境

  • (必须)Kubectl
  • (可选)kubectx
  • (可选)kubens

以上所有前置环境安装,请参考:用户指南:使用kubectl连接远程集群

三. 部署指南

1. 安装Okteto CLI

对于 MacOS / Linux 系统

执行执行如下命令即可:

curl https://get.okteto.com -sSfL | sh
对于 Windows 系统

直接下载 https://downloads.okteto.com/cli/okteto.exe 并将其添加到您的 $PATH 路径中即可。

在这里插入图片描述

2. 安装kubectl

对于 MacOS / Linux 系统
  1. 下载安装Kubectl
curl -LO https://storage.googleapis.com/kubernetes-release/release/v1.18.0/bin/linux/amd64/kubectl

  1. 使kubectl生成二进制可执行文件。
chmod +x ./kubectl

  1. 将二进制文件移到您的PATH
sudo mv ./kubectl /usr/local/bin/kubectl

  1. 测试安装版本是最新的
kubectl version --client

对于 Windows 系统
  1. 点此下载并安装kubetcl-windows最新版本 v1.23.0
  2. 将保存 kubectl.exe 的文件夹路径添加到您的PATH环境变量中。
  3. 确保kubectl的版本与下载的相同:
kubectl version --client

扩展小工具:安装kubectx和kubens

(推荐)安装好kubectl后可以安装kubectxkubens

kubectx是一种在 kubectl 上更快地在上下文(集群)之间切换的工具。

kubens是一个在 Kubernetes 命名空间之间轻松切换(并为 kubectl 配置它们)的工具。

官网安装教程地址:

GitHub - ahmetb/kubectx: Faster way to switch between clusters and namespaces in kubectl

  1. 显示当前已配置连接的所有集群:
kubectx

在这里插入图片描述

  1. 切换到使用的集群。我这里使用dev-v2
kubectx dev-v2

在这里插入图片描述

3. 配置kubectl

对于 Linux 系统
  1. 查看自己的kubectl的配置
kubectl config view

在这里插入图片描述

可以看见还没有任何配置,接下来需要手动添加配置。

  1. 从rancher获取配置

登陆rancher网站:https://rancher.huxiang.pro

请按照分配的集群名称,点击要使用的集群。如图,我这里是dell-k3s

在这里插入图片描述

点击Kubeconfig File,打开rancher配置参考

在这里插入图片描述

点击Copy to Clipboard,复制rancher配置内容

在这里插入图片描述

  1. 设置本地kubectl配置

回到本地命令行,新建一个文件夹(我这里新建了一个/home/kubectl文件夹,可任意设置)

进入该文件夹,新建一个名为config的文件,注意没有后缀名

将刚刚复制到的rancher配置都粘贴进去

在这里插入图片描述

保存并退出,接下来需要将kubectl设置配置到环境变量中,打开/etc/profile文件

将下面内容补充到文件末尾, 不要覆盖

KUBECTL=/usr/local/bin

KUBECONFIG=/home/kubectl/config

PATH=$PATH:$KUBECTL

export KUBECTLexport KUBECONFIGexport PATH

(注意在此只是以我的配置文件为例,具体要根据实际情况进行相应修改)

在这里插入图片描述

保存并退出即可

  1. 使环境变量生效
source /etc/profile

在这里插入图片描述

  1. 执行以下命令,即可看到相关节点信息
kubectl get nodes

在这里插入图片描述

  1. 设置k3s集群能够访问私有库镜像

新建一个codespace-deployment.yaml,添加以下配置,注意修改镜像名称:

---

apiVersion: v1

kind: ServiceAccount

metadata:

  name: codespace

  labels:

    account: codespace

imagePullSecrets:

- name: gitlab

---

apiVersion: apps/v1

kind: Deployment

metadata:

  name: <这里填写镜像名称>

  labels:

    app: <这里填写镜像名称>

    version: v1

spec:

  replicas: 1

  selector:

    matchLabels:

      app: <这里填写镜像名称>

      version: v1

  template:

    metadata:

      labels:

        app: <这里填写镜像名称>

        version: v1

    spec:

      serviceAccountName: codespace

      containers:

      - name: <这里填写镜像名称>

        image: nginx

保存并退出,执行以下命令。注意修改空间名称:

kubectl apply -f codespace-deployment.yaml -n <这里填写空间名称>

在这里插入图片描述

以上步骤没有异常报错,kubectl即为配置完毕

对于 MacOS/Windows 系统
  1. 查看自己的kubectl的配置
kubectl config view

在这里插入图片描述

可以看见还没有任何配置,接下来需要手动添加配置。

  1. 从rancher获取配置

登陆rancher网站:https://rancher.huxiang.pro

点击要使用的集群名称,我这里是dell-k3s

在这里插入图片描述

点击Kubeconfig File,打开rancher配置参考

在这里插入图片描述

点击Copy to Clipboard,复制rancher配置内容

在这里插入图片描述

  1. 进入到~/.kube目录,Windows为C:\Users\用户\.kube\(没有则手动创建.kube文件夹)

在这里插入图片描述

进入该.kube文件夹,新建一个名为config的文件,注意没有后缀名

将刚刚复制到的rancher配置都粘贴进去

在这里插入图片描述

在这里插入图片描述

  1. 命令行执行以下命令,即可看到相关节点信息
kubectl get nodes

在这里插入图片描述

4. 配置Okteto

  1. 在命令行中,进入对应的代码项目根目录
  2. 在代码项目根目录中,创建okteto.yml配置文件,并参考以下内容添加配置内容
name: <这里填写镜像名称>

image: <这里填写镜像地址>

context: <这里填写集群名>

sync:

- .:/usr/src/app

persistentVolume:

  enabled: false

command:

- bash

  1. 在命令行中,执行如下指令,注意修改空间名称
okteto up -n                                                   

如果出现以下报错:

在这里插入图片描述

输入n,再按回车。

稍等加载完成后,okteto会默认可进入一个指定shell,在这里你可以直接运行指令,这个shell的运行环境就是你刚刚进入的集群pod环境。
在这里插入图片描述

5. 安装vscode远程开发环境

  1. 点此打开vscode安装包下载页
  2. 下载并安装对应系统版本的vscode安装包

在这里插入图片描述

  1. (可选)搜索并且下载安装chinese汉化插件

在这里插入图片描述

  1. 搜索并且下载安装**remote development**插件

在这里插入图片描述

  1. 关闭vscode,重启以加载刚下载安装的插件

  2. 在vscode左侧菜单栏,选择远程图标

  3. 在"远程资源管理器"的选项中,选择“SSH Targets”
    在这里插入图片描述

  4. 点击SSH target右边的加号,跟随指引设置云服务器的ip,端口,账号,密码

在这里插入图片描述

  1. 在列出的主机中,选择和我们创建的项目名一致的主机
  2. 默认进入的是/root目录,切换到/work目录即可使用

四. 常见问题答疑

  1. kubectl如何设置连接多个集群

kubectl连接多个集群_汪云飞记录本-CSDN博客

Logo

K8S/Kubernetes社区为您提供最前沿的新闻资讯和知识内容

更多推荐