1.软文推荐

2.软文推荐

3.软文推荐

Nginx——Ngine X,是一款高性能的反向代理服务器;也是一个IMAP、POP3、SMTP代理服务器;也是一个Http服务器。也就是说Nginx本身就可以托管网站,进行Http服务处理,也可以作为反向代理服务器使用。

假设Kubernetes集群已经配置好,我们将基于CentOS为Nginx创建一个虚拟机。

以下是实验种设置的详细信息:

Nginx (CenOS8 Minimal) – 192.168.1.50
Kube Master – 192.168.1.40
Kube Worker 1 – 192.168.1.41
Kube Worker 2 – 192.168.1.42

步骤1)安装epel仓库

因为nginx软件包在CentOS系统默认仓库里面没有,所以需要安装epel仓库:

[root@nginxlb ~]# dnf install epel-release -y

步骤2)安装Nginx

运行以下命令安装nginx:

[root@nginxlb ~]# dnf install nginx -y

使用rpm命令验证Nginx包的详细信息:

[root@nginxlb ~]# rpm -qi nginx

配置防火墙,允许访问nginx的http和https服务:

[root@nginxlb ~]# firewall-cmd --permanent --add-service=http
[root@nginxlb ~]# firewall-cmd --permanent --add-service=https
[root@nginxlb ~]# firewall-cmd –reload

使用以下命令将SELinux设置为permissive模式,并重启系统使selinux关闭生效:

[root@nginxlb ~]# sed -i s/^SELINUX=.*$/SELINUX=permissive/ /etc/selinux/config
[root@nginxlb ~]# reboot

步骤3)从Kubernetes中获取应用程序的NodePort详细信息

[kadmin@k8s-master ~]$  kubectl get all -n ingress-nginx

从上面的输出中可以看到,每个工作节点的NodePort 32760映射到端口80,NodePort 32375映射到443端口。我们将在Nginx配置文件中使用这些节点端口来做负载均衡。

步骤4)将Nginx配置负载均衡

编辑nginx配置文件,并添加以下内容:

[root@nginxlb ~]# vim /etc/nginx/nginx.conf

注释掉“server”部分(从38到57行): 并添加以下几行:

upstream backend {
  server 192.168.1.41:32760;
  server 192.168.1.42:32760;
}

server {
  listen 80;
  location / {
      proxy_read_timeout 1800;
      proxy_connect_timeout 1800;
      proxy_send_timeout 1800;
      send_timeout 1800;
      proxy_set_header        Accept-Encoding   "";
      proxy_set_header        X-Forwarded-By    $server_addr:$server_port;
      proxy_set_header        X-Forwarded-For   $remote_addr;
      proxy_set_header        X-Forwarded-Proto $scheme;
      proxy_set_header Host $host;
      proxy_set_header X-Real-IP $remote_addr;
      proxy_pass http://backend;
  }

   location /nginx_status {
       stub_status;
   }
}

保存配置文件,并退出。 根据上述更改,所有向nginx的80端口的请求,都将被路由到的Kubernetes工作节点(192.168.1.41和192.168.1.42)的NodePort(32760)端口上。

使用以下命令启用Nginx服务:

[root@nginxlb ~]# systemctl start nginx
[root@nginxlb ~]# systemctl enable nginx

测试Nginx的 TCP负载均衡器

要测试nginx作为Kubernetes的TCP负载均衡是否工作正常,请部署基于nginx的deployment,将deployment的端口暴露为80端口,并为nginx 的deployment定义入口资源。我已经使用以下命令来部署这些Kubernetes对象:

[kadmin@k8s-master ~]$ kubectl create deployment nginx-deployment --image=nginx
deployment.apps/nginx-deployment created
[kadmin@k8s-master ~]$ kubectl expose deployments nginx-deployment  --name=nginx-deployment --type=NodePort --port=80
service/nginx-deployment exposed

运行以下命令以获取deployments,svc和ingress详细信息: 更新本地主机的hosts文件,以便nginx-lb.example.com指向nginx服务器的IP地址(192.168.1.50)

[root@localhost ~]# echo "192.168.1.50  nginx-lb.example.com" >> /etc/hosts

尝试通过浏览器访问nginx-lb.example.com

总结

上面证实了Nginx作为TCP负载均衡器可以正常工作,因为它可以负载平衡K8s工作节点之间端口80上的TCP通信量。

本文来源:www.lxlinux.net/6391.html,若引用不当,请联系修改。

相关文章 8

1

腾讯云服务器计费模式:包年包月和按量计费区别如何选择?(腾讯云服务器操作系统) 2分钟前

腾讯云服务器计费模式怎么样? 腾讯云服务器CVM计费模式包年包月和按量计费有什么区别?包年包月是预付费模式,云服务器至少购买1个月...

2

阿里云电脑未来会取代个人电脑吗?未来云电脑会变成什么样子?(阿里云的未来) 3分钟前

阿里云电脑未来会取代个人电脑吗? 阿里推出了无影云电脑就开始尬吹,事实上类似云电脑这种玩意绝上世纪90年代就有了,最初是Sun提出...

3

Linux系统查看CPU温度命令 4分钟前

电脑在使用中发热时避免不了的,监控硬件温度或许可以帮助你诊断笔记本为什么会过热。下面良许教程网为大家分享一下Linux系统查看CP...

4

C#序列化与反序列化集合对象并进行版本控制详解 4分钟前

这篇文章介绍了C#序列化与反序列化集合对象并实现版本控制的方法,文中通过示例代码介绍的非常详细。对大家的学习或工作具有一定的参...

5

MySQL通过UDF调用shell脚本 6分钟前

前言 在最近的项目中,由于需要使用MySQL的UDF(user defined function),这个特性从未使用过,而且个人觉得这个特性以后应该会经常使用,所...

6

云服务器租用该如何选择配置,一般价格是多少?(云计算服务器租用) 8分钟前

云服务器租用该如何选择配置,一般价格是多少? 打算租用一台服务器用来放公司的网站,请问该租用什么配置的云服务器,价格是多少?...

7

Ubuntu中安装多个终端以及更换默认终端 10分钟前

终端其实就是为主机提供了人机接口,每个人都通过终端使用主机的资源。终端有字符终端和图形终端两种模式。在图形环境下,通过鼠标...

8

英特尔Meteor Lake ISH获得Linux 6.1驱动支持 11分钟前

在 Linux 6.1 合并窗口打开之前,人机接口设备 (HID) 子系统已经有大量更新补丁在排队了。 截止目前,HID 子系统的 for-next 分支中的一些 HID...