k8s编程operator实战之云编码平台——③Code-Server Pod访问实现

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


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/
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值