k8s编程operator系列:
k8s编程operator——(1) client-go基础部分
k8s编程operator——(2) client-go中的informer
k8s编程operator——(3) 自定义资源CRD
k8s编程operator——(4) kubebuilder & controller-runtime
k8s编程operator实战之云编码平台——①架构设计
k8s编程operator实战之云编码平台——②controller初步实现
k8s编程operator实战之云编码平台——③Code-Server Pod访问实现
k8s编程operator实战之云编码平台——④web后端实现
k8s编程operator实战之云编码平台——⑤项目完成、部署
在上一节中实现了controller的逻辑,可以通过grpc来创建、删除工作空间以及查询信息。接下来要实现的就是如何访问到工作空间,我们就采用反向代理的方式,反向代理服务器就使用nginx。
openresty是一个基于nginx和luajit的web平台,我们可以通过它来实现动态的反向代理。接下来将会逐步实现。
1、openresty介绍和安装
openresty官网:http://openresty.org/cn/

openresty安装参考:http://openresty.org/cn/linux-packages.html
2、实现code-server的反向代理
首先我们只使用配置文件来实现固定的code-server的反向代理并测试功能是否正常,然后再通过lua脚本来配置动态的反向代理。
openresty安装后一般在/usr/local/openresty中,下面有一个nginx文件夹,里面就和nginx是一样的了。
1、启动上一节中实现的controller,先来启动一个code-server的pod
# 直接运行
make run
# 或者 先编译,再运行
make build
./bin/manager
2、使用apiPost来调用grpc创建pod,下面的ip等下要在nginx配置中使用

3、修改nginx的配置文件nginx.conf来配置反向代理:
一定要配置下面的几个header,因为code-server使用了wesocket,如果不配置将会使用不了websocket
#user nobody;
worker_processes 1;
error_log logs/error.log;
# error_log logs/error.log notice;
# error_log logs/error.log info;
#pid logs/nginx.pid;
events {
worker_connections 1024;
}
http {
server {
listen 80;
# 使用ws作为访问的prefix
location /ws/ {
# 反向代理到code-server所在pod中
proxy_pass http://10.244.1.58:9999/

本文介绍如何使用OpenResty实现Code-Server的固定及动态反向代理,并通过Lua脚本与Redis交互来动态配置代理目标。
最低0.47元/天 解锁文章
1226

被折叠的 条评论
为什么被折叠?



