k8s 综合部署练习(针对负载均衡+外网访问web)

news2025/1/18 19:10:46

 

 部署需求

(1)Kubernetes 区域可采用 Kubeadm 方式进行安装。

(2)要求在 Kubernetes 环境中,通过yaml文件的方式,创建Deployment控制器和4个Nginx Pod副本,并进入容器中修改index.html文件内容,以做区分,页面内容可自己定义。

(3)编写service对应的yaml文件,使用NodePort类型和TCP 30010端口将Nginx服务发布出去。

(4)负载均衡区域配置Keepalived+Nginx,实现负载均衡高可用,通过VIP 192.168.73.66和自定义的端口号即可访问K8S发布出来的服务。

(5)iptables防火墙服务器,设置双网卡,并且配置SNAT和DNAT转换实现外网客户端可以通过12.0.0.1访问内网的Web服务。

 

 

 

 

 解题思路以及部署注意点

 (1)初始化化环境,利用kubeadm搭建出一个master两个node节点的k8s集群

【云原生】kubeadm部署k8s集群_站在这别动,我去给你买橘子的博客-CSDN博客icon-default.png?t=M85Bhttps://blog.csdn.net/qq_62462797/article/details/128291497?spm=1001.2014.3001.5501

 (2)搭建好一主二节点的k8s集群后,通过yaml的资源模板来创建pod和相关service资源

创建pod: 

 

 kubectl expose deployment nginx-exam   --name=exam-service --type=NodePort --dry-run=client -o yaml >nginx-svc.yaml

vim nginx.yaml

kubectl apply -f nginx.yaml

 

 

创建相关的资源:

 

#资源只要模板就行,后面可以通过编辑器进行修改
kubectl expose deployment nginx-exam --port=8000 --target-port=80 --name=exam-service --type=NodePort --dry-run=client -o yaml > nginx-svc.yaml 

vim nginx-svc.yaml

kubectl apply -f nginx-svc.yaml

 

 (3)为pod创建不同的web测试页面

 

 

kubectl exec -it nginx-exam-7f987d55dd-f75zg bash
echo "<h1>this is web4</h1>" > /usr/share/nginx/html/index.html

kubectl exec -it nginx-exam-7f987d55dd-sj6nw bash
 echo "<h1>this is web4</h1>" > /usr/share/nginx/html/index.html

kubectl exec -it nginx-exam-7f987d55dd-tg6r7 bash
 echo "<h1>this is web4</h1>" > /usr/share/nginx/html/index.html

kubectl exec -it nginx-exam-7f987d55dd-z9j96 bash
echo "<h1>this is web4</h1>" > /usr/share/nginx/html/index.html

 通过pod 的clusterIP加上映射出的端口进行访问测试:

 

 

 (4)使用keepalived+nginx实现负载均衡的实现,期间需要写出心跳检测脚本,配置好nginx的负载均衡设置,nginx的主配置文件利用四层代理转发,添加好转发池,在后面的转发模块中指定的

转发池中的listen监听端口,就为VIP的监听端口。

 

主keepalived配置:

vim /etc/keepalived/keepalived.conf

! Configuration File for keepalived

global_defs {
   router_id nginx_backup
}

vrrp_script check_nginx {
   script "/etc/nginx/check_nginx.sh"
}
vrrp_instance VI_1 {
    state MASTER
    interface ens33
    virtual_router_id 51
    priority 100
    advert_int 1
    authentication {
        auth_type PASS
        auth_pass 1111
    }
    virtual_ipaddress {
        192.168.73.66
    }
    track_script {
       check_nginx
    }
}

 

 

备keepalived配置:

 

vim /etc/keepalived/keepalived.conf

! Configuration File for keepalived

global_defs {
   router_id nginx_backup
}

vrrp_script check_nginx {
   script "/etc/nginx/check_nginx.sh"
}
vrrp_instance VI_1 {
    state BACKUP
    interface ens33
    virtual_router_id 51
    priority 90
    advert_int 1
    authentication {
        auth_type PASS
        auth_pass 1111
    }
    virtual_ipaddress {
        192.168.73.66
    }
    track_script {
       check_nginx
    }
}

 

 

心跳检测脚本:

# 两个负载均衡调度器都要设置
vim /etc/nginx/check_nginx.sh

#!/bin/bash
killall -0 nginx &>/dev/null
if [ $? -ne 0 ];then
  systemctl stop keepalived
fi

 

 

 

设置完成后就行nginx和keepalived的重启(先启nginx) 

 

 

进行vip访问端口测试:

 

 

 

 (4)进行网关服务器的映射

 按照要求两张网卡:ens33 指向内网,ens36  指定外网(充当网关服务器)

将所有的服务器的网关都指向网关服务器的IP

进行DNAT和SNAT的设置:

#打开路由转发
vim /etc/sysctl.conf
 net.ipv4.ip_forward=1
 
sysctl -p


#做SNAT和DNAT做网关映射

iptables -t nat -A POSTROUTING -s 192.168.73.0/24 -o ens36 -j SNAT --to 12.0.0.1
iptables -t nat -A PREROUTING -i ens36 -d 12.0.0.1 -p tcp --dport 80 -j DNAT --to 192.168.73.66:6443

 

(5)使用外网的客户机进行访问(网关指向外网网卡IP) 

 

 

 

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/93357.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【12月13日更新半决赛预测】用二元泊松模型预测2022年世界杯淘汰赛结果

用二元泊松模型预测2022年世界杯淘汰赛结果 网上有很多文章用双泊松&#xff08;Double Poisson&#xff09;模型来预测世界杯比赛结果。但是双泊松模型有一个严重的缺陷&#xff0c;那就是它假设比赛中两队的比分是条件独立的。而我们都知道&#xff0c;在对抗性比赛中&…

2022年拼多多元旦节会搞活动吗?拼多多有节日活动吗?

2022年拼多多元旦节会搞活动吗?拼多多有节日活动吗? 离春节只有一个月半的时间了&#xff0c;而且双十二也已经过了。要想等平台的活动&#xff0c;就只有元旦节和年货节了。有小伙伴想知道&#xff0c;拼多多元旦节会搞活动吗? 一、拼多多有节日活动吗? 拼多多购物节主要…

数据服务门槛再提升,这个“TOP1玩家”凭何再度领军?

在人工智能领域&#xff0c;数据的重要程度正在迅速提升。 根据ML大牛吴恩达提出的著名二八定律&#xff1a;80%数据20%模型更好的AI。他认为&#xff0c;一个机器学习团队80%的工作应该放在数据准备上&#xff0c;确保数据质量是最重要的工作&#xff0c;每个人都知道应该如此…

什么是元数据

元数据 元数据是描述数据的数据&#xff0c;关于数据的组织、数据域及其关系&#xff0c;本质上是关于数据的信息。元数据以数字化方式描述企业的数据、流程和应用程序&#xff0c;为企业数字资产的内容提供了上下文&#xff0c;使得数据更容易理解、查找、管理和使用。 元数据…

计算机毕设Python+Vue校园跳蚤平台(程序+LW+部署)

项目运行 环境配置&#xff1a; Jdk1.8 Tomcat7.0 Mysql HBuilderX&#xff08;Webstorm也行&#xff09; Eclispe&#xff08;IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持&#xff09;。 项目技术&#xff1a; SSM mybatis Maven Vue 等等组成&#xff0c;B/S模式 M…

Nginx教程(1)

文章目录1.1 简介1.2 常见的服务器1.3 反向代理1.4 Nginx的安装与运行1.5 Nginx的进程模型1.6 Nginx处理Web请求机制解析1.7 Nginx核心配置文件nginx.conf解析1.8 Nginx常用命令解析1.9 Nginx日志切割1.10 Nginx为静态资源提供服务1.11 使用Gzip压缩提高请求效率1.12 location匹…

React源码分析(二)渲染机制

准备工作 为了方便讲解&#xff0c;假设我们有下面这样一段代码&#xff1a; function App(){const [count, setCount] useState(0)useEffect(() > {setCount(1)}, [])const handleClick () > setCount(count > count)return (<div>勇敢牛牛, <sp…

java计算机毕业设计基于安卓Android的急救服务APP

项目介绍 随着信息技术和网络技术的飞速发展,人类已进入全新信息化时代,传统管理技术已无法高效,便捷地管理信息。为了迎合时代需求,优化管理效率,各种各样的管理系统应运而生,各行各业相继进入信息管理时代,急救服务系统就是信息时代变革中的产物之一。 任何系统都要遵循系统设…

Android9.0 Fiddler 模拟器抓包

目录 一、生成Fiddler证书并安装 二、制作证书 三、adb的配置 四、安装证书到Android手机 五、抓包 六、总结 一、生成Fiddler证书并安装 1.到官网下载fiddler插件 https://www.telerik.com/fiddler/add-onshttps://www.telerik.com/fiddler/add-ons 2.官网插件工具很多&a…

TCP/IP HTTP WebSocket Socket 路由

最近在写一个上位机&#xff0c;需要将采集到的数据上传到云平台&#xff0c;然后就考虑到使用WebSocket实现&#xff0c;但是WebSocket和Socket有啥区别&#xff0c;这两个东西分别是个啥&#xff0c;咱也不清楚&#xff0c;然后就查资料&#xff0c;发现有好多之前想了解但是…

Java面试基础篇-IO

UNIX提供5种I/O模型 var code “7cfcb088-556d-478a-b21d-12b255236dbd” BIO模型 在进程空间调用recvfrom时被阻塞,直到有数据才返回。 NIO模型 调用recvfrom时先返回EWOULDBLOCK错误&#xff0c;然后轮询是否有数据。 I/O复用 linux提供select/poll&#xff0c;其支…

Minecraft 1.19.2 Forge模组开发 07.拼图建筑(jigsaw)

如果你看过之前的Minecraft 1.19.2建筑生成的话&#xff0c;想必会更好理解这篇教程。 效果演示效果演示效果演示 1.我们本期准备生成的建筑分为4块&#xff0c;所以首先需要用4个结构方块将整个建筑包括起来&#xff1a; 2.之后我们需要用指令拿出拼图方块: give p minecraf…

数据结构与算法——Java实现递归、迷宫回溯问题、八皇后问题

目录 一、递归 1.1 介绍递归 二、迷宫回溯问题 2.1 代码实现 三、八皇后问题 3.1 基本介绍 3.2 分析思路 3.3 代码实现 一、递归 1.1 介绍递归 简单的说&#xff1a;递归就是方法自己调用自己&#xff0c;每次传入不同的变量。 递归有助于编程者解决复杂的问题&#x…

Efficient Zero-shot Event Extraction with Context-Definition Alignment论文解读

Efficient Zero-shot Event Extraction with Context-Definition Alignment code&#xff1a;tencent-ailab/ZED: This is the repository for EMNLP 2022 paper “Efficient Zero-shot Event Extraction with Context-Definition Alignment” (github.com) paper&#xff1a;…

【手把手】分布式定时任务调度解析之Elastic-Job

1、这货怎么没怎么听过 经常使用Quartz或者Spring Task的小伙伴们&#xff0c;或多或少都会遇到几个痛点&#xff0c;比如&#xff1a; 1、不敢轻易跟着应用服务多节点部署&#xff0c;可能会重复多次执行而引发系统逻辑的错误&#xff1b; 2、Quartz的集群仅仅只是用来HA&…

业主应该重视装修中的“道”而不是“术”!极家精工装修好不好!

业主应该重视装修中的“道”而不是“术”&#xff01;极家精工装修好不好&#xff01;看了很多业主问了很多关于装修中很琐碎的事儿&#xff0c;比如“装修流程”、“装修应该注意什么”、“装修哪些必须要重视”、“某某材料和某某材料相比哪个好”、“家里装了什么是你最不后…

Lua中的基本数据类型

Lua中的数据类型一、Lua基本数据类型1.1、nil1.2、boolean1.3、number1.4、string1.5、function1.6、table二、Lua 通用数据结构的实现总结后言Lua是一门动态类型的脚本语言&#xff0c;这意味着同一个变量可以在不同时刻指向不同类型的数据。Lua代码中 一般采用一下两种做法相…

Dubbo-admin+Zookeeper 的环境搭建实操与 Could-not-extract-archive 报错踩坑

$ brew install zookeeper > Downloading https://homebrew.bintray.com/bottles/zookeeper-3.4.13.mojave.bottle.tar.gz ...先来看dubbo-admin的安装&#xff1b;我们先找到它在apache下的官方GitHub&#xff0c;官方也有相关介绍&#xff0c;中英文版都有(毕竟原本是中国…

[附源码]Node.js计算机毕业设计高校学科竞赛管理系统Express

项目运行 环境配置&#xff1a; Node.js最新版 Vscode Mysql5.7 HBuilderXNavicat11Vue。 项目技术&#xff1a; Express框架 Node.js Vue 等等组成&#xff0c;B/S模式 Vscode管理前后端分离等等。 环境需要 1.运行环境&#xff1a;最好是Nodejs最新版&#xff0c;我…

Kibana使用

简介 Kibana是通向 Elastic 产品集的窗口。 它可以在 Elasticsearch 中对数据进行视觉探索和实时分析。 Kibana通常用于项目log日志收集分析、数据可视化分析等。 一、【Discover】搜索查询 Discover模块用于全文搜索文档(doucument),支持索引筛选、时间筛选、字段筛选、支持…