k8s 将项目暴露到互联网访问

1. 增加公网负载均衡器

  • 编写nginx配置

    upstream java-demo {
    	server 10.100.24.83:8080;    #这个是ingress-controller的地址
    	server 10.100.24.84:8080;
    }
    
    
    server {
    	listen 80;
    	server_name test.scajy.cn;
    	location / {
    		proxy_pass http://java-demo;
    		proxy_set_header   Host $host;
    		proxy_set_header   X-Real-IP $remote_addr;
    		proxy_set_header   X-Forwarded-For $proxy_add_x_forwarded_for;
    		client_max_body_size       10m;
    		client_body_buffer_size    128k;
    		proxy_connect_timeout      30s;
    		proxy_send_timeout 30s;
    		proxy_read_timeout 30s;
    		proxy_buffer_size  4k;
    		proxy_buffers      4 32k;
    		proxy_busy_buffers_size    64k;
    		proxy_temp_file_write_size 64k;
    	}
    }
    
  • 架构图
    image

2. 案例

2.1 安装nginx

  • 安装nginx源

    [root@jenkins k8s-java-demo]# yum localinstall http://nginx.org/packages/centos/7/noarch/RPMS/nginx-release-centos-7-0.el7.ngx.noarch.rpm
    
  • 查询nginx版本

    [root@jenkins k8s-java-demo]# yum repolist enabled | grep "nginx*"
    Repository epel is listed more than once in the configuration
    nginx/x86_64                        nginx repo                               208
    
  • 安装nginx版本

    [root@jenkins k8s-java-demo]# yum -y install nginx
    
  • 启动nginx

    [root@jenkins ~]# service nginx start
    Redirecting to /bin/systemctl start nginx.service
    
  • 设置开机启动

    [root@jenkins ~]# systemctl enable nginx.service
    Created symlink from /etc/systemd/system/multi-user.target.wants/nginx.service to /usr/lib/systemd/system/nginx.service.
    [root@jenkins ~]# systemctl list-dependencies | grep nginx
    ● ├─nginx.service
    

2.2 配置nginx配置文件实现k8s应用暴露

  • 编写配置文件

    [root@jenkins conf.d]# vim default.conf 
    [root@jenkins conf.d]# cat default.conf 
    upstream java-demo {
    	server 10.100.24.83:80;
    	server 10.100.24.84:80;
    }
    
    
    server {
    	listen 80;
    	server_name test.scajy.cn;
    	location / {
    		proxy_pass http://java-demo;
    		proxy_set_header   Host $host;
    		proxy_set_header   X-Real-IP $remote_addr;
    		proxy_set_header   X-Forwarded-For $proxy_add_x_forwarded_for;
    		client_max_body_size       10m;
    		client_body_buffer_size    128k;
    		proxy_connect_timeout      30s;
    		proxy_send_timeout 30s;
    		proxy_read_timeout 30s;
    		proxy_buffer_size  4k;
    		proxy_buffers      4 32k;
    		proxy_busy_buffers_size    64k;
    		proxy_temp_file_write_size 64k;
    	}
    }
    
  • 重新加载nginx配置文件

    [root@jenkins conf.d]# /usr/sbin/nginx -t
    nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
    nginx: configuration file /etc/nginx/nginx.conf test is successful
    [root@jenkins conf.d]# /usr/sbin/nginx -s reload
    
  • 绑定hosts测试
    image

  • 浏览器访问
    image

posted @ 2021-11-12 10:47  七月流星雨  阅读(160)  评论(0编辑  收藏  举报