惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

人人都是产品经理
人人都是产品经理
MyScale Blog
MyScale Blog
Y
Y Combinator Blog
罗磊的独立博客
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
P
Proofpoint News Feed
Google DeepMind News
Google DeepMind News
V
Vulnerabilities – Threatpost
T
The Blog of Author Tim Ferriss
云风的 BLOG
云风的 BLOG
Recorded Future
Recorded Future
N
News and Events Feed by Topic
B
Blog RSS Feed
阮一峰的网络日志
阮一峰的网络日志
博客园_首页
C
CXSECURITY Database RSS Feed - CXSecurity.com
博客园 - 【当耐特】
N
Netflix TechBlog - Medium
博客园 - 叶小钗
B
Blog
Vercel News
Vercel News
T
Tenable Blog
T
The Exploit Database - CXSecurity.com
Spread Privacy
Spread Privacy
T
Threat Research - Cisco Blogs
Cyber Security Advisories - MS-ISAC
Cyber Security Advisories - MS-ISAC
Last Week in AI
Last Week in AI
F
Fortinet All Blogs
cs.CL updates on arXiv.org
cs.CL updates on arXiv.org
Microsoft Security Blog
Microsoft Security Blog
S
Securelist
Microsoft Azure Blog
Microsoft Azure Blog
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
P
Palo Alto Networks Blog
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
D
DataBreaches.Net
Cyberwarzone
Cyberwarzone
Engineering at Meta
Engineering at Meta
Martin Fowler
Martin Fowler
G
GRAHAM CLULEY
Project Zero
Project Zero
Cisco Talos Blog
Cisco Talos Blog
A
Arctic Wolf
C
CERT Recently Published Vulnerability Notes
L
LangChain Blog
cs.AI updates on arXiv.org
cs.AI updates on arXiv.org
C
Check Point Blog
A
About on SuperTechFans
W
WeLiveSecurity
The GitHub Blog
The GitHub Blog

Coding

天翼云 glm5.1 codingplan 官方玩不起,强制终止用户的包月续订 - V2EX 字节的 CodingPlan 实锤虚假宣传 - V2EX 现在有什么优雅的使用 ai 工具编程的方法? - V2EX MiniMax-M2 截到 11.07 限时免费 - V2EX VibeCoding 导致损失 1100 刀 - V2EX rpc 服务中,“业务错误”的返回应该如何设计? - V2EX 科班大学计算机专业主要课程有哪些呢 - V2EX 你们公司用上 ChatGPT 了吗?有哪些使用场景 - V2EX Cloud Studio 内核升级之专注体验 - V2EX 行云流水| CI 3.0 云原生构建全新上线 - V2EX ​Cloud Studio 云端开发保障企业源代码安全 - V2EX 更高效便捷的开发体验——Cloud Studio 编辑器命令行工具 - V2EX Cloud Studio 内核升级之持续优化 - V2EX Cloud Studio 有“新”分享 - V2EX 怎么设计面试题,能考查到实战能力? - V2EX 有奖征文丨 [玩转 Cloud Studio] 第二季来啦! - V2EX Cloud Studio 一个好用的在线编程工具 - V2EX 线上直播 | 未来金融研究所——以应用为中心,重塑金融研发效率 - V2EX 新一代 CI 即将到来! - V2EX 重磅发布! Orbit 云原生应用全生命周期管理工具上线啦! - V2EX 腾讯云, DevOps 领导者! - V2EX 各位是如何批量管理项目中的 shell 脚本的? - V2EX CODING DevSecOps 助力金融企业跑出数字加速度 - V2EX CODING 正式入驻腾讯会议应用市场! - V2EX CODING DevOps 助力中化信息打造新一代研效平台,驱动“线上中化”新未来 - V2EX 叮! Techo Day 腾讯技术开放日如约而至! - V2EX 程序员在公司该怎么保护自己的个人劳动成果? - V2EX Next.js 在 Serverless 中从踩坑到破茧重生 - V2EX [高效开发] 不止面对面, Cloud Studio 推出 MetaWork 云协作套件 - V2EX CODING 公开课火热报名中! - V2EX coding.net 502 - 2022 年 3 月 21 日 - V2EX 发现 coding.net 会对 1 年未登录用户删数据 - V2EX CODING 携手 Thoughtworks 助力老百姓大药房打造”自治、自决、自动”的敏捷文化 - V2EX 迷雾中的自动化测试体系建设 - V2EX Nocalhost:云原生开发新体验 - V2EX 使用 Nocalhost 开发 Kubernetes 中的 APISIX Ingress Controller - V2EX CODING x 百果园,水果零售龙头迈出 DevOps 体系建设第一步 - V2EX CODING 与悬镜安全达成战略合作,引领 DevOps 向 DevSecOps 创新模式升级 - V2EX Apache Log4j 2 报高危漏洞, CODING 联手腾讯安全护卫软件安全 - V2EX WePack —— 助力企业渐进式 DevOps 转型 - V2EX 大型前端项目 DevOps 沉思录 —— CI 篇 - V2EX CODING 代码资产安全系列之 —— 构建全链路安全能力,守护代码资产安全 - V2EX 一页纸需求的应对方法 —— 五步法 - V2EX 喜报! Nocalhost 成功加入 CNCF 沙箱 - V2EX Nocalhost —— 让云原生开发回归原始而又简单 - V2EX CODING 项目协同 2.0 —— 让协作有条不紊 - V2EX 赋能“数字金融”, CODING 再下数城 - V2EX 打造数字化软件工厂 —— 一站式 DevOps 平台全景解读 - V2EX 做云原生时代标准化工具,实现高效云上研发工作流 - V2EX
Nocalhost 为 KubeSphere 提供更强大的云原生开发环境 - V2EX
CodingNET · 2021-11-30 · via Coding

作者简介
张海立(驭势科技云平台研发总监):开源爱好者,云原生社区上海站 PMC 成员,KubeSphere Ambassador ;日常云原生领域工作涉及 Kubernetes 、DevOps 、可观察性、服务网格等。
玉易才:Nocalhost Maintainer ,CKA 、CKAD ,Work From Home

KubeSphere 简介

KubeSphere 是在 Kubernetes 之上构建的以应用为中心的多租户容器平台,提供全栈的 IT 自动化运维的能力,简化企业的 DevOps 工作流。 ​

KubeSphere 提供了运维友好的向导式操作界面,即便是 Kubernetes 经验并不丰富的用户,也能相对轻松地上手开始管理和使用。它提供了基于 Helm 的应用市场,可以在图形化界面下非常轻松地安装各种 Kubernetes 应用。 ​

Nocalhost 简介

Nocalhost 是一个允许开发者直接在 Kubernetes 集群内开发应用的工具。

Nocalhost 的核心功能是:提供 Nocalhost IDE 插件(包括 VSCode 和 Jetbrains 插件),将远端的工作负载更改为开发模式。在开发模式下,容器的镜像将被替换为包含开发工具(例如 JDK 、Go 、Python 环境等)的开发镜像。当开发者在本地编写代码时,任何修改都会实时被同步到远端开发容器中,应用程序会立即更新(取决于应用的热加载机制或重新运行应用),开发容器将继承原始工作负载所有的声明式配置( configmap 、secret 、volume 、env 等)。

Nocalhost 还提供:

  • VSCode 和 Jetbrains IDE 一键 Debug 和 HotReload
  • 在 IDE 内直接提供开发容器的终端,获得和本地开发一致的体验
  • 提供基于 Namespace 隔离的开发空间和 Mesh 开发空间

在使用 Nocalhost 开发 Kubernetes 的应用过程中,免去了镜像构建,更新镜像版本,等待集群调度 Pod 的过程,把编码 /测试 /调试反馈循环(code/test/debug cycle)从分钟级别降低到了秒级别,大幅提升开发效率。

此外,Nocalhost 还提供了 Server 端帮助企业管理 Kubernetes 应用、开发者和开发空间,方便企业统一管理各类开发和测试环境。

本文将介绍如何在 KubeSphere 中快速部署 Nocalhost Server及基本使用,提供一个帮助研发团队统一管理 Nocalhost 应用部署的管理平台;以及 Nocalhost Server 基本使用。 ​

前提条件

安装 KubeSphere

安装 KubeSphere 有两种方法。一是在 Linux 上直接安装,可以参考文档:在 Linux 安装 KubeSphere; 二是在已有 Kubernetes 中安装,可以参考文档:在 Kubernetes 安装 KubeSphere。 ​

在 KubeSphere 中启用应用商店

在 KubeSphere 中启用应用商店可以参考文档:KubeSphere 应用商店

安装 Nocalhost Server

在 KubeSphere 3.2 中从应用商店安装

Nocalhost Server 已经集成在了 KubeSphere 3.2 的应用商店中了,因此可以直接访问应用商店并按 常规方式 进行应用部署。

在 KubeSphere 3.x 中通过应用仓库安装

在 KubeSphere 3.x 中,您可以 通过应用仓库来部署应用,下面分步介绍具体的操作过程。

步骤 1:添加应用商店

首先,使用具备企业空间管理权限的账号登陆 KubeSphere 并进入您选定的一个企业空间,在您的企业空间中,进入「应用管理」下的「应用仓库」页面,并点击「添加仓库」。

在弹出的对话框中,可将应用仓库名称设置为 nocalhost,将应用仓库的 URL 设置为 https://nocalhost-helm.pkg.coding.net/nocalhost/nocalhost,点击「验证」对 URL 进行验证,验证通过后再点击「确定」。

⚠️ 注意:URL 必须贴全链接,不能缺失 https:// 这部分,否则会验证失败

应用仓库导入成功后会显示在如下图所示的列表中。

有关添加私有仓库时的更多参数信息,请参见 导入 Helm 仓库

步骤 2:从应用模版部署应用

进入您选定的用于部署 Nocalhost Server 的项目,如果还没有可用项目,可以直接打开企业空间页面中的「项目」栏目,「创建」一个新的项目。

假设我们已经创建了一个名为 nocalhost-server 的项目,进入项目界面,进入「应用负载」下的「应用」页面,再点击「创建」新应用。

在弹出的对话框中选择「从应用模板」创建。

  • 从应用商店:选择内置的应用和以 Helm Chart 形式单独上传的应用。
  • 从应用模板:从私有应用仓库和企业空间应用池选择应用。

从下拉列表中选择之前添加的私有应用仓库 nocalhost,可以看到仓库中的 Nocalhost Server Helm Chart 如下显示。

您可以查看「应用信息」和「 Chart 文件」,在版本下拉列表中选择版本,然后点击「部署」。

设置应用「名称」,确认应用「版本」和部署「位置」,点击「下一步」。

在「应用设置」标签页,您可以手动编辑清单文件或直接点击「安装」。建议把 service.type 设置为 ClusterIP,以确保安装不受 Kubernetes 网络环境影响。当然,您完全可以结合自身研发环境来选择使用 NodePortLoadBalancer 服务类型来暴露 Nocalhost Server ( Server 本身对此并无限制)。

最后等待 Nocalhost Server 创建完成并开始运行,可以在「应用」中看到如下应用状态(可能需要刷新一下页面)。

步骤 3:暴露 Nocalhost Server 服务

进入「应用负载」下的「服务」页面,选择 nocalhost-web 服务,在最右侧的拉下菜单中选择「编辑外部访问」。

在弹出的对话框中选择合适当前云端网络环境的外网「访问方式」,然后点击「确定」即可应用服务配置。

本文假设我们仍然保持 ClusterIP 的访问方式,通过 kubectl port-forward 来进行后续的 Nocalhost Server 使用。

❯ kubectl -n nocalhost-server port-forward service/nocalhost-web 8080:80
Forwarding from 127.0.0.1:8080 -> 80
Forwarding from [::1]:8080 -> 80

⚠️ 注意:这里的 nocalhost-server 请替换为您实际使用的部署了 Nocalhost 应用的 Namespace

至此,已完成在 Kubesphere 中快速部署 Nocalhost Server ,如您是第一次使用 Nocalhost Server ,可继续以下关于 Nocalhost Server Dashboard 配置、在 Nocalhost IDE 插件中进行开发体验的内容。

使用 Nocalhost Server

完成 Port Forward 后可使用 http://localhost:8080 来打开 Nocalhost Server Dashboard 页面;使用默认账号 [email protected] 及密码 123456 进行登陆。登录后请更改默认密码。

创建集群

Nocalhost Server 多用于管理整个团队的 Nocalhost 研发环境,因此我们首先需要添加可进行管理的集群。

在 Nocalhost Server Dashboard 中选择左侧菜单列表中的「集群」,进入页面后选择「添加集群」。

在弹出的对话框中输入「集群名称」,并录入 kubectl 可用的、具备 cluster-admin 权限的 kubeconfig 文件后「确认」。

目前可导入的 kubeconfig 文件内容还不支持 exec 类型的用户凭证,如果您使用的是这里凭证,建议您另外生成一个具有足够权限的 ServiceAccount 并使用其对应的 kubeconfig 。

这里有多种方式获取目标集群的 kubeconfig ,例如您可以返回 KubeSphere 并进入集群页面,获取当前集群的 kubeconfig 文件。注意,如果使用 kubeconfig 文件的应用部署在当前集群外,您需要将 clusters:cluster:server 参数的值修改为对外暴露的 Kubernetes API 服务器地址

添加成功后,可以得到如下的集群信息页面。

创建开发空间( DevSpace )

接下来,我们进入「开发空间」页面,选择「创建开发空间」,并在弹出的对话框中选择「创建隔离开发空间」。

「共享开发空间」,即 MeshSpace ,不在本文章讨论范围,更多可参考 Manage MeshSpace 这篇文章介绍。

在弹出的对话框中,可以填写「开发空间名称」(这里设置为 demo),选择「集群」和其「所有者」,并按需进行「其它设置」。

创建完成后,可以在「开发空间」页面看到已创建的隔离开发空间,如下图所示。

创建 bookinfo 样例应用

下一步我们开始为团队创建一些可部署的应用,先进入「应用」页面,选择「添加应用」。

在弹出的对话框中填写「应用名称」,同时我们继续填写其它信息:

  • 选择 Git 作为「安装来源」
  • 输入 https://github.com/nocalhost/bookinfo.git 作为「 Git 仓库地址」
  • 选择 Manifest 作为「 Manifest 类型」
  • 「应用配置文件」留空,即使用默认值 config.yaml
  • 「 Git 仓库的相对路径」填入 manifest/templates

可访问 GitHub 查看完整的 bookinfo 样例应用仓库,了解详细的配置文件细节。

创建用户并共享开发空间

最后,我们创建一个样例用户来演示如果共享开发空间。进入到「用户」页面后,点击「添加用户」,在弹出的对话框中填入必须的用户信息后「完成」添加。

然后我们回到开发空间,选择我们之前创建的 demo 空间,点击画笔图标进入「编辑开发空间」的「共享用户」标签页,开始「添加共享」。

选择需要添加的用户,并注意选择默认的 Cooperator 协作者权限,另一个 Viewer 观察者权限的用户只能浏览开发空间。

至此,我们在 Nocalhost Server Dashboard 中的配置就告一段落,下面将进入 IDE 利用 Nocalhost 插件执行应用的部署及开发体验。 ​

部署 bookinfo 应用部署

这里我们将使用 VS Code 执行应用的部署,首先需要 在 VS Code 中安装 Nocalhost 插件。 您也可以使用 JetBrains 及其 Nocalhost 插件

在 VS Code 中打开 Nocalhost 插件面板,点击 + 号创建集群连接,填入 Nocalhost Server 地址,并使用前面创建的普通用户 test 的用户名及密码进行登录。

创建成功可以看到之前在 Nocalhost Server Dashboard 中创建的开发空间 demo(nh1btih)

点击 demo 空间右侧的火箭图标,会在 VS Code 编辑器顶部加载应用列表,如下图所示可以看到之前添加的 bookinfo 应用。

选择该应用即会启动在 demo 空间中的 Nocalhost 应用部署过程(选择应用源的默认分支进行安装即可),安装完成后,会出现如下日志和弹窗提示:

同时在 Nocalhost 插件面板中也可以展开 Workload 看到具体的部署内容。

开发体验

远程调试

  • 右键工作负载 authors ,点击 Remote debug ,即可进入远程 debug 模式。
  • 打上断点,在浏览器访问 http://127.0.0.1:39080/productpage ,即可进行远程 debug

引用链接

[1] KubeSphere: https://kubesphere.com.cn/ [2] Nocalhost: https://nocalhost.dev/ [3] Nocalhost Server: https://nocalhost.dev/docs/server/server-overview [4] 在 Linux 安装 KubeSphere: https://kubesphere.com.cn/docs/quick-start/all-in-one-on-linux/ [5] 在 Kubernetes 安装 KubeSphere: https://kubesphere.com.cn/docs/quick-start/minimal-kubesphere-on-k8s/ [6] KubeSphere 应用商店: https://kubesphere.com.cn/docs/pluggable-components/app-store/ [7] 常规方式: https://kubesphere.com.cn/docs/project-user-guide/application/deploy-app-from-appstore/ [8] 通过应用仓库来部署应用: https://kubesphere.com.cn/docs/project-user-guide/application/deploy-app-from-appstore/ [9] 导入 Helm 仓库: https://kubesphere.com.cn/docs/workspace-administration/app-repository/import-helm-repository/ [10] Manage MeshSpace: https://nocalhost.dev/docs/server/manage-devspace-mesh [11] bookinfo: https://github.com/nocalhost/bookinfo/ [12] 在 VS Code 中安装 Nocalhost 插件: https://nocalhost.dev/docs/installation#install-vs-code-plugin [13] JetBrains 及其 Nocalhost 插件: https://nocalhost.dev/docs/installation#install-jetbrains-plugin

点击此处链接一键开启云原生开发环境