k8stars是便于将tars服务运行在Kubernetes中的方案。
在tarsregistry增加了3个接口,用于tars名字的自动注册/心跳上报和节点下线。
提供一个tarscli
命令行工具,用于分配端口/生成配置/上报心跳以及节点下线。
tarsregistry(名字服务) 参考baseserver的说明部署tars registry
部署服务示例
部署示例simpleserver
cd examples/simple && kubectl apply -f simpleserver.yaml
示例说明:
examples/simple/Dockerfile
文件制作,基础镜像由 cmd/tarscli/Dockerfile
制作tarscli genconf
用于生成tars服务启动配置app/genconf/config.go
中的 ServerConf
结构体。endpoint默认为tcp -h ${local_ip} -p ${random_port}
,支持自动填入IP和随机端口。基于Go语言的 HelloWorld 程序 TestApp.HelloGo
验证部署 登录db_tars
,然后执行select * from t_server_conf\G
可以看到simpleserver的节点信息已自动注册。
tarscli
基于环境变量TARS_PATH
(默认/tars)来管理服务,各目录功能:
${TARS_PATH}/bin
:启动脚本和二进制文件${TARS_PATH}/conf
:配置文件${TARS_PATH}/log
:log文件${TARS_PATH}/data
:运行状态/缓存文件tarscli
提供了一组命令工具,方便tars服务的容器化部署,可通过环境变量来指定参数,详细说明见tarscli help
。 以下是tarscli支持的子命令
genconf
用于生成tars服务的启动配置文件。支持的环境变量有:
TARS_APPLICATION
指定的应用名,默认从_server_meta.yaml
中读取TARS_SERVER
指定的服务名,默认从_server_meta.yaml
中读取TARS_BUILD_SERVER
编译时的服务名,编译的服务名与运行的服务名不同时会用到TARS_LOCATOR
可以指定registry的地址,默认是tars-registry.default.svc.cluster.local -p 17890
(service的地址)TARS_SET_ID
可以指定服务setTARS_MERGE_CONF
可指定配置模板文件,并将配置合并到服务的启动配置文件中supervisor
默认执行先genconf
命令,再启动并监控服务。支持的环境变量有:
TARS_START_PATH
服务的启动脚本,默认是$TARS_PATH/bin/start.sh
TARS_STOP_PATH
服务的停止脚本,默认是kill在$TARS_PATH
路径下的所有服务进程TARS_REPORT_INTERVAL
上报心跳到registry的时间间隔TARS_DISABLE_FLOW
注册到registry时是否开启流量,非空表示关闭,默认开启TARS_CHECK_INTERVAL
检查服务状态的时间间隔,如果状态有变化会实时同步到regitryTARS_BEFORE_CHECK_SCRIPT
每次检查前都运行的shell命令TARS_CHECK_SCRIPT_TIMEOUT
每次检查前运行shell命令的超时时间TARS_PRESTOP_WAITTIME
关流量-停止服务前的等待时间,用于无损变更,默认80秒hzcheck 用于同步服务状态和k8s的pod状态,需要将pod的readiness probe
设为tarscli hzcheck
命令
prestop 用于在服务退出前删除在registry对应的配置
TARS_PRESTOP_WAITTIME
关流量-停止服务前的等待时间,用于无损变更,默认80秒notify 用于发送管理命令,常用命令有:tars.setloglevel/tars.pprof等
我们在上篇文章已经学习使用spark on k8s的client mode 运行了spark shell 和提交jar包运行任务。 hadoop组件—spark实战----spark on k8s模式k8s原生方式安装spark2.4.4 client mode和使用 本篇文章记录运行pyspark和提交python程序。 制作有python和java环境和包含有spark2.4.4客户端的镜像
目录 k8s 持久化存储:PVC 一、k8s PV 是什么? 二、k8s PVC 是什么? 三、k8s PVC 和 PV 工作原理 3.1 pv 的配置方式 3.2 绑定 3.3 使用 3.4 回收策略 四、创建 pod ,使用 pvc 作为持久化存储卷 4.1 创建 nfs 共享目录 4.2 编写 pv 的资源清单文件 4.3 创建 pvc 与符合条件的 pv 绑定 五、清理 pv 5.1 清
目录 k8s 存储类:storageclass 1.1 存储制备器 1.2 回收策略 1.3 允许卷扩展 二、安装 nfs provisioner 用于配合存储类动态生成 pv 2.1 把 nfs-subdir-external-provisioner.tar.gz 上传到 node2 和 node1 上,手动解压。 2.2 创建运行 nfs-provisioner 需要的 sa 账号
目录 一、常见角色(role)授权的案例 1.1 允许读取核心 API 组的 Pod 资源 1.2 允许读写 apps API 组中的 deployment 资源 1.3 允许读取 Pod 以及读写 job 信息 1.4 允许读取一个名为 my-config 的 ConfigMap(必须绑定到一个 RoleBinding 来限制到一个Namespace 下的 ConfigMap): 1.5 读取核
TARS 是基于名字服务使用 TARS 协议的高性能 RPC 开发框架,同时配套一体化的服务治理平台,帮助个人或者企业快速的以微服务的方式构建自己稳定可靠的分布式应用。 TARS 是将腾讯内部使用的微服务架构 TAF(Total Application Framework)多年的实践成果总结而成的开源项目。 TARS 这个名字来自星际穿越电影人机器人 TARS,电影中 TARS 有着非常友好的交互
我已经使用kubeadm在ubuntu服务器上设置了kubernetes集群。我已经创建了一个部署,并使用NodePort服务公开了该部署。如何访问运行pod的API(使用Ubuntu主机服务器的IP)? 在此处输入图像描述
Kubernetes服务 github.com/soluble-ai/kubetap项目提供了一个插件kubectl为轻松部署mitmproxy到代理Kubernetes服务。 有关用法和文档,请参考kubetap。
简述 Swoft 拥有便捷的命令行工具和相应的服务管理命令,参阅 Swoft Devtool 了解更多。 HTTP 服务 # 启动 HTTP 服务 $ php ./bin/swoft http:start # 以守护进程模式启动 $ php ./bin/swoft http:start -d # 重启 HTTP 服务 $ php ./bin/swoft http:restart # 重新加载
TARS-PHP是针对PHP使用tars二进制协议,以及Tars平台整体运维、RPC等一系列能力的解决方案。它主要由如下的几个部分组成: tcp server http server timer server Tars 是基于名字服务使用 Tars 协议的高性能 RPC 开发框架,同时配套一体化的服务治理平台,帮助个人或者企业快速的以微服务的方式构建自己稳定可靠的分布式应用。 tars-clien
问题内容: 我在Windows 7 32位操作系统中安装了postgreSQL二进制文件;我可以从cmd启动服务器,但 不能将其作为Windows服务运行。 这是我尝试手动启动服务时遇到的错误: 我要做的就是 双击我的Java应用程序启动到Windows后,我需要流畅地运行我的应用程序而没有任何数据库错误。我不能这样做,因为postgreSQL没有作为Windows服务运行。 我在Windows事