# alkssh
**Repository Path**: zlchen199/alkssh
## Basic Information
- **Project Name**: alkssh
- **Description**: 一个集成了终端页面,后端整条kubernetes调动的组件,可以实现pod在web页面的连接,方便各位大佬的使用,二次开发和集成项目,通过url的方式识别和连接pod容器,不需要侵入到k8s环境中,可在kubernetes外部部署使用
- **Primary Language**: Python
- **License**: Not specified
- **Default Branch**: main
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 8
- **Forks**: 5
- **Created**: 2021-04-01
- **Last Updated**: 2024-03-11
## Categories & Tags
**Categories**: Uncategorized
**Tags**: None
## README
# ALKSSH
简介
一个集成了终端页面,后端整条kubernetes调动的组件,可以实现pod在web页面的连接,方便各位大佬的使用,二次开发和集成项目,通过url的方式识别和连接pod容器,不需要侵入到k8s环境中,可在kubernetes外部部署使用,
演示

环境说明
centos7.3+
python==3.6
Django==2.0.5
kubernetes==12.0.0
channels==2.0.2
部署方式
物理机部署
1.拉取源码到本地
git clone https://github.com/SK2-Angel/alkssh.git
2.安服务所需要的模块
pip install django==2.0.5 kubernetes==12.0.0 channels==2.0.2
3.将集群的权限文件kubelet.conf放置到/root/kubernetes.yaml,以至于组件可以正常的访问k8s集群
cp -rp /etc/kubernetes/kubelet.conf /root/kubernetes.yaml
说明:如果要更权限文件的路径,可在代码的/alkssh/medivh/kube.py这个文件中的config.load_kube_config("/root/kubernetes.yaml")更改
4.进入到目录中启动运行服务
python3 manage.py runserver 0.0.0:3578 #端口号可以根据自己的需求更改
容器化部署
利用docker启动组件
docker run -v -d /root/kubernetes.yaml:/root/kubernetes.yaml -p 3578:3578 --add-host apiserver.cluster.local:172.3.59.166 czl1041484348/alkssh:v1
说明:
/root/kubernetes.yaml: kubernetes的认证文件,组件需要获取kubernetes权限,用来调用api和数据传输。
-p 3578:3578: 容器内部的默认启动端口是3578,根据个人的需求进行改变。
–add-host apiserver.cluster.local:172.3.59.166: 这参数是添加一个hosts到容器中,这里是因为作者的kube-apiserver是通过名称进行访问的,所以要加一个hosts否则无法解析地址,根据个人的需求进行改变。
访问方式
http://部署此组件的机器地址加端口号/index/namespace命名空间/pod的名称
例如:
http://225.145.56.221:3578/index/alkssh/nginx-alktest-5bfb49576d-875f9
API集成方法
集成组件可以用url的方式,例如在调用组件前,获取接口的ip:port,命令空间名称指定的pod名称,然后可以利用window.open(url)的方式,打开并跳转页面,实现pod终端的连接
结尾
此开源组件除了docker也可部署在宿主机和kubernetes中,后续会更新kubernetes的部署方法,如果有任何疑问或者发现了BUG,可以提交问题,我看到第一时间会回复,运维开发是将来的发展趋势,自动化运维已经满足不了部分需求,谢谢大家的支持!!
博客连接:
https://blog.csdn.net/qq_42647772/article/details/111663376
作者微信,有什么问题可以加我微信问,也可以探讨运维开发的奥妙,谢谢
