以下为授权转载的一盎司科技公众号文章
Tars是腾讯开源的基于名字服务的高性能RPC开发框架,也是一套开发模式,其在k8s环境下的版本K8SFrameWork将Tars框架引入到了云原生环境之中。以下将简单介绍在Windows下使用Kind部署k8s以及K8SFrameWork,关于K8SFrameWork框架的详细说明可参考官方文档(https://doc.tarsyun.com)。
环境
-
Windows操作系统:Windows10(21H2,19044.1766)
-
Linux操作系统:Ubuntu 22.04 LTS
-
Docker Desktop:v4.10.1
-
Kind:0.22.0
-
Helm:3.14.2
安装Kind
直接在github(https://github.com/kubernetes-sigs/kind/releases)下载即可,选择kind-windows-amd64,然后改为kind.exe,并加入Path路径方便命令行使用。
创建k8s集群
手动编写yaml文件创建k8s集群,这里按照kind官网操作增加ingress支持:
执行命令创建k8s集群(指定版本为了匹配Tars对k8s要求):
kind create cluster --image kindest/node:v1.24.15 --config kind-k8s-cluster-ingress.yaml
由于要下载镜像,可能需要一段时间才能创建好,等待完成即可。
安装ingress controller
为了方便后续TarsWeb管理平台访问,安装ingress,由于镜像问题,这里使用改造的版本创建,ingress改为NodePort方式:
使用命令创建:
kubectl apply -f ingress-controller.yaml
等待创建完成,可使用kubectl get pod,svc,ingress -n ingress-nginx命令查看。
安装Tars框架k8s版本
-
设置节点标签
首先查看节点信息:
然后设置节点标签:
kubectl label nodes kind-control-plane tars.io/node.tars-dev=
kubectl label nodes kind-control-plane tars.io/SupportLocalVolume=
此处命名空间tars-dev需与后面安装tars-k8s/tarsframework的保持一致!
-
安装tarscontroller
使用命令添加添加 tars-k8s repo:
helm repo add tars-k8s https://tarscloud.github.io/K8SFramework/charts
helm repo update
helm search repo tars-k8s -l
执行安装命令:
helm install tarscontroller tars-k8s/tarscontroller
查看状态:
kubectl get pods -n tars-system -o wide
-
安装tarsframework
先编写tarsframework.yaml文件:
然后执行命令:
helm install tarsframework -n tars-dev --create-namespace -f tarsframework.yaml tars-k8s/tarsframework
注意,此处的命名空间tars-dev需要与设置标签中的相同!
执行后报错,如下:
此时需要做一个资源删除操作,然后再重新执行命令:
注意,此时命名空间tars-dev已经存在,所以命令需要修改下:
然后等待执行结果即可:
鉴于服务较多,可能需要等待较长时间才能安装完成(保证全部为Running状态即可)。
配置tarsweb路由
之前安装过ingress,所以这里增加路由信息,让外部可以访问k8s集群内部的TarsWeb:
配置本地hosts文件,映射本机IP和local.tars.com(可使用ipconfig /flushdns刷新DNS):
打开页面访问即可:
初次登录设置密码,然后重新登录即可