• 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

  • 相关阅读:
    Linux上的.NET框架Mono 2.0发布
    WordPress数据库管理中五个实用的phpMyAdmin技巧
    美国十三个性价比较好的空间推荐 建站可优选
    众多站长将网站移民海外 该如何选择国外VPS
    Mono 开发 (使用.NET技术的你,绝对不能忽略Mono)
    数据库访问的性能问题与瓶颈问题【z】
    IE和FireFox中的event事件
    经典国外网站大放送
    AppScan 7.8.1 简体中文
    用lighttpd+mono在Linux上面跑ASP.NET程序
  • 原文地址:https://www.cnblogs.com/scajy/p/15543395.html
Copyright © 2020-2023  润新知