相信使用过K8S或容器化的大家都有了解过私有容器仓库Harbor,Harbor是VMware大佬开源的一个私有容器镜像仓库,VMware也开源了另外一个工具就是本文要说到的Octant,从笔者的角度上看来它更像一个Dashboard的代替品。
附上:
喵了个咪的博客:w-blog.cn
Octant官方Git地址:https://github.com/vmware/octant
> PS:Octant需要依赖本地的kuberctl才能正常启动,当前官方最新版本为 V0.7
一、介绍
借用官方的一句话说:
A web-based, highly extensible platform for developers to better understand the complexity of Kubernetes clusters.
基于Web的高度可扩展平台,供开发人员更好地了解Kubernetes集群的复杂性。
Octant主要具备以下特性
- 资源查看 以图形方式显示Kubernetes集群中对象之间的关系。各个对象的状态由颜色表示,以显示工作负载性能。
- 摘要视图 通过使用多个kubectl命令找到的输出聚合的单个页面中的合并状态和配置信息。
- 端口转发 使用页面点击的方式将本地端口转发到正在运行的pod,以便调试应用程序,甚至可以跨命名空间端口转发多个pod。
- 日志查看 查看pod和容器活动的日志流,以便在不打开多个终端的情况下进行故障排除或监控
- 标签过滤器 使用标签筛选来组织工作负载,以检查命名空间中具有大量对象的群集。
- 群集导航 跨不同群集轻松更改名称空间或上下文之间的内容。还支持多个kubeconfig文件。
- 插件系统 高度可扩展的插件系统,供用户通过gRPC提供额外的功能。插件作者可以在现有视图之上添加组件。
但是从笔者的角度上来看最重要的主要是如下几点:
- 能够完整的查看整个K8S中各个组件以及他们的关联关系,Dashboard隐藏了很多组件的状态
- 能够通过网页的方式直接映射POD中的端口,可以很方便的进行调试增加开发人员的易用性
当然有优势也有缺点,当前的版本并不支持在线shell控制也没有更强的权限控制能力,还不能完全脱离Dashboard但是如果结合者kubebox还是可以一战的
二、安装Octant
废话不多说我们就进入具体的安装使用环节,推荐直接使用二进制文件进行安装,方法和kububox基本一致
使用mac举例:
> PS:首先需要保障kubectl能够正常使用
wget https://github.com/vmware/octant/releases/download/v0.7.0/octant_0.7.0_macOS-64bit.tar.gz
tar -zxvf octant_0.7.0_macOS-64bit.tar.gz
octant_0.7.0_macOS-64bit/octant
运行之后就会自动弹出页面了
三、功能演示
选择一个Deployments在点击到resourceViewer就可以查看关联关系图
如果具有复杂关系可以非常直观的图中展示出来
在继续选择到POD层
Container proxy就可以选择把POD中莫个团队之间映射到本地
如下:
就可以正常访问了,这个功能可以非常方便开发人员进行容器下的调试
> PS:端口映射只能映射到localhost上,并不能在一台功能服务器上放出端口给到多个开发使用,等后续官方支持吧