zoukankan      html  css  js  c++  java
  • 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

  • 相关阅读:
    Spring RestTemplate 之put、delete请求
    Too many connections解决方案
    各个平台的mysql重启命令
    MySQL出现too many connections(1040)错误解决方法
    EXCEL中,如何引用一个单元格中的数据,作为另一个单元格内容中的一部分?
    [翻译][Java]ExecutorService的正确关闭方法
    MySQL:日期函数、时间函数总结(MySQL 5.X)
    MySQL 获得当前日期时间 函数
    线程本地变量ThreadLocal
    split 分割 字符串(分隔符如:* ^ : | , . ?) 及注意点
  • 原文地址:https://www.cnblogs.com/scajy/p/15543395.html
Copyright © 2011-2022 走看看