k8s测试题

k8s集群
k8s集群node01192.168.246.11
k8s集群node02192.168.246.12
k8s集群master  192.168.246.10
k8s集群nginx+keepalive
负载均衡nginx+keepalive01(master)192.168.246.13
负载均衡nginx+keepalive02(backup)192.168.246.14
VIP 192.168.246.100

一、Kubernetes 区域可采用 Kubeadm 方式进行安装

二、

要求在 Kubernetes 环境中,通过yaml文件的方式,创建2个Nginx Pod分别放置在两个不同的节点上,Pod使用hostPath类型的存储卷挂载,节点本地目录共享使用 /data,2个Pod副本测试页面二者要不同,以做区分,测试页面可自己定义。

2.1创建yaml文件

[root@master01 ~]#kubectl run mynginx --image=nginx:1.14 --port=80 --dry-run=client -o yaml > nginx-pod.yaml
[root@master01 ~]#cd /opt
[root@master01 opt]#mkdir /opt/kaoshi
[root@master01 opt]#cd 
[root@master01 ~]#mv nginx-pod.yaml /opt/kaoshi/
[root@master01 ~]#cd /opt/kaoshi/
[root@master01 kaoshi]#ls
nginx-pod.yaml
[root@master01 kaoshi]#vim nginx-pod.yaml
apiVersion: v1
kind: Pod
metadata:labels:run: nginxname: nginx01
spec:nodeName: node01containers:- image: nginxname: nginxports:- containerPort: 80volumeMounts:- name: node01-htmlmountPath: /usr/share/nginx/htmlreadOnly: falsevolumes:- name: node01-htmlhostPath:path: /datatype: DirectoryOrCreate---
apiVersion: v1
kind: Pod
metadata:labels:run: nginxname: nginx02
spec:nodeName: node02containers:- image: nginxname: nginxports:- containerPort: 80volumeMounts:- name: node02-htmlmountPath: /usr/share/nginx/htmlreadOnly: falsevolumes:- name: node02-htmlhostPath:path: /datatype: DirectoryOrCreate

2.2使用yaml文件创建自主式Pod资源

[root@master01 kaoshi]#kubectl apply -f nginx-pod.yaml 
pod/nginx01 created
pod/nginx02 created

查看调度

#查看创建的两个pod,被调度到了不同的node节点

[root@master01 kaoshi]#kubectl get pods -o wide|grep nginx
nginx01                            1/1     Running   0          3m46s   10.244.1.14   node01   <none>           <none>
nginx02                            1/1     Running   0          3m46s   10.244.2.9    node02   <none>           <none>

2.3两个node节点的存储卷,写入不同的html文件内容

2.4验证访问网页

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

3.1编写service对应的yaml文件

[root@master01 kaoshi]#vim pod-nginx-service.yaml
apiVersion: v1
kind: Service
metadata:labels:run: nginxname: nginx-service
spec:type: NodePortports:- protocol: TCPport: 80targetPort: 80nodePort: 30000selector:run: nginx

3.2访问测试

四、

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

4.1安装nginx服务

cat > /etc/yum.repos.d/nginx.repo << 'EOF'
[nginx]
name=nginx repo
baseurl=http://nginx.org/packages/centos/7/$basearch/
gpgcheck=0
EOFyum install nginx -y

stream {log_format  main  '$remote_addr $upstream_addr - [$time_local] $status $upstream_bytes_sen
t'; access_log  /var/log/nginx/k8s-access.log  main;upstream k8s-nodes {server 192.168.246.11:30000;server 192.168.246.12:30000;}   server {listen 30000;proxy_pass k8s-nodes;}   
}
nginx -t   systemctl start nginx
systemctl enable nginx
netstat -natp | grep nginx

4.2安装keepalived服务

yum install keepalived -y

4.3修改配置文件

master节点

! Configuration File for keepalivedglobal_defs {                     # 接收邮件地址notification_email {acassen@firewall.locfailover@firewall.locsysadmin@firewall.loc}notification_email_from Alexandre.Cassen@firewall.loc     # 邮件发送地址smtp_server 127.0.0.1    #修改smtp_connect_timeout 30  router_id NGINX_MASTER  # #nginx01节点的为NGINX_MASTER,nginx02节点的为NGINX_BACKUP
}vrrp_script check_nginx {              #添加一个周期性执行的脚本script "/etc/nginx/check_nginx.sh"   #指定检查nginx存活的脚本路径
}vrrp_instance VI_1 {state MASTER              #nginx01节点的为 MASTER,nginx02节点的为 BACKUPinterface ens33           #指定网卡名称 ens33virtual_router_id 51      #指定vrid,两个节点要一致priority 100              #nginx01节点的为 100,nginx02节点的为 80advert_int 1authentication {auth_type PASSauth_pass 1111}
virtual_ipaddress {           #指定虚拟ip地址192.168.246.100/24}track_script {                   #指定vrrp_script配置的脚本check_nginx}
}
#!/bin/bash
killall -0 nginx
if [ $? -ne 0 ];thensystemctl stop keepalived
fi


chmod +x /etc/nginx/check_nginx.sh
#重启服务
systemctl restart keepalived.service
systemctl enable keepalived.service

4.4访问检测

4.5检测下是否高可用

虚拟ip又回到主7-7上面了

五、

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

iptables防火墙服务器192.168.246.7

5.1防火墙服务器配置双网卡

5.1.1添加网卡

5.1.2修改地址

systemctl restart network

[root@localhost network-scripts]#iptables -t nat -A POSTROUTING -o ens36 -s 192.168.246.0/24 -j SNAT --to 12.0.0.1
[root@localhost network-scripts]#iptables -t nat -A PREROUTING -i ens36 -d 12.0.0.1 -p tcp --dport 80 -j DNAT --to 192.168.246.100:30000

客户端:

iptables防火墙服务器12.0.0.12

systemctl restart network

访问测试

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

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

相关文章

【因果推断python】24_倾向得分2

目录 倾向加权 倾向得分估计 倾向加权 好的&#xff0c;我们得到了倾向得分。怎么办&#xff1f;就像我说过的&#xff0c;我们需要做的就是以此为条件。例如&#xff0c;我们可以运行一个线性回归&#xff0c;它仅以倾向得分为条件&#xff0c;而不是所有的 X。现在&#xff…

Spark 之 HiveStrategies

HiveTableRelation 相关代码 HiveStrategies.scala 当 relation.tableMeta.stats.isEmpty 是&#xff0c; 即调用 hiveTableWithStats class DetermineTableStats(session: SparkSession) extends Rule[LogicalPlan] {private def hiveTableWithStats(relation: HiveTableRel…

《微机原理及接口技术》

编程题&#xff1a; 编制一个程序片断&#xff0c;把保存在变量dataA和dataB中较大的数据取出后存入maxC。假设变量存放的是32位有符号数。 OV AX, DATA ; 段初始化 MOV DS, AX MOV AX, STACK MOV SS, AX MOV DX, WORD PTR BUFA2 ; 按题意&#xff0c;将数送入 DX,AX, BX,…

千问Qwen7B chat:简单代码使用

我们先用一个简单的例子看一下千问的代码逻辑及效果。 from modelscope import AutoModelForCausalLM, AutoTokenizer from modelscope import GenerationConfig# 加装分词 tokenizer AutoTokenizer.from_pretrained("qwen/Qwen-7B-Chat", revisionv1.0.5, trust_r…

每日一题36:数据分组之科目种类数量

一、每日一题 表: Teacher ------------------- | Column Name | Type | ------------------- | teacher_id | int | | subject_id | int | | dept_id | int | ------------------- 在 SQL 中&#xff0c;(subject_id, dept_id) 是该表的主键。 该表中的每一行都表示…

【postgresql初级使用】视图上的触发器instead of,替代计划的rewrite,实现不一样的审计日志

instead of 触发器 ​专栏内容&#xff1a; postgresql使用入门基础手写数据库toadb并发编程 个人主页&#xff1a;我的主页 管理社区&#xff1a;开源数据库 座右铭&#xff1a;天行健&#xff0c;君子以自强不息&#xff1b;地势坤&#xff0c;君子以厚德载物. 文章目录 inst…

Python私教张大鹏 Vue3整合AntDesignVue之Layout布局

案例&#xff1a;栅格布局 核心代码&#xff1a; <template><a-row><a-col :span"24">col</a-col></a-row><a-row><a-col :span"12">col-12</a-col><a-col :span"12">col-12</a-col…

国际货币基金组织警告:网络攻击影响全球金融稳定

近日&#xff0c;在一份关于金融稳定的报告中&#xff0c;国际货币基金组织&#xff08;IMF&#xff09;用了一章&#xff08;共三章&#xff09;的篇幅描述了网络攻击对金融环境的影响&#xff0c;并警告称&#xff0c;全球金融稳定正受到日益频繁和复杂的网络攻击的威胁。同时…

面试题react03

React事件机制&#xff1a; React的事件机制可以分为两个部分&#xff1a;事件的触发和事件的处理。事件的触发&#xff1a;在React中&#xff0c;事件可以通过用户与组件进行交互而触发&#xff0c;如点击、鼠标移动、键盘输入等。当用户与组件进行交互时&#xff0c;浏览器会…

Spring Security(二)OAuth2认证详解及自定义异常处理

1、OAuth2.0 简介 OAuth 2.0是用于授权的行业标准协议。OAuth 2.0为简化客户端开发提供了特定的授权流&#xff0c;包括Web应用、桌面应用、移动端应用等。 1.1 OAuth2.0 相关名词解释 Resource owner&#xff08;资源拥有者&#xff09;&#xff1a;拥有该资源的最终用户&…

每日题库:Huawe数通HCIA——14(30道)

所有资料均来源自网络&#xff0c;但个人亲测有效&#xff0c;特来分享&#xff0c;希望各位能拿到好成绩&#xff01; PS&#xff1a;别忘了一件三连哈&#xff01; 今日题库&#xff1a; 201. 如下图所示的网络&#xff0c;主机存在ARP缓存&#xff0c;主机A.发送数据包给…

Echarts 可视化图库案例(Make A Pie)

1、Made A Pie Made A Pie 2、可视化社区 &#xff08;Made A Pie 替代&#xff09; 可视化社区

在Android中使用 MQTT 服务实现消息通信

1.摘要 MQTT&#xff08;Message Queuing Telemetry Transport&#xff0c;消息队列遥测传输&#xff09;是一种轻量级的、基于发布/订阅&#xff08;Publish/Subscribe&#xff09;模式的通信协议&#xff0c;最初由 IBM 在1999年开发。它设计用于在低带宽、不稳定的网络环境下…

产品创新管理:从模仿到引领,中国企业的创新之路

一、引言 在全球化竞争日益激烈的今天&#xff0c;科技创新已成为推动国家经济增长和社会进步的关键动力。中国自改革开放四十年来&#xff0c;在科技创新领域取得了举世瞩目的成就&#xff0c;从跟踪模仿到自主研发&#xff0c;再到自主创新、开放创新和协同创新并举&#xf…

【机器学习300问】110、什么是Lasso回归模型?

LASSO回归的全称是Least Absolute Shrinkage and Selection Operator&#xff0c;中文叫“最小绝对收缩和选择算子”&#xff0c;用一个比喻来初步感受一下它的作用&#xff1a; 想象你在整理一个杂乱无章的房间&#xff0c;里面堆满了各种物品&#xff08;代表众多的预测变量&…

【Vue】小兔鲜首页 - 拆分模块组件 - 局部注册

文章目录 一、分析二、局部注册 一、分析 小兔仙组件拆分示意图 开发思路 分析页面&#xff0c;按模块拆分组件&#xff0c;搭架子 (局部或全局注册) 根据设计图&#xff0c;编写组件 html 结构 css 样式 (已准备好) 拆分封装通用小组件 (局部或全局注册)&#xff0c;一般这…

人形机器人的应用场景

随着技术的不断进步和人工智能的快速发展&#xff0c;人形机器人逐渐走入人们的视野&#xff0c;并在各个领域中展现出广泛的应用潜力。本文将探讨人形机器人的主要应用场景&#xff0c;包括服务行业助手、教育领域应用、医疗保健助手、工业制造伙伴、家庭服务助手、军事领域执…

Develop an application using LangChain

模型、提示和解析器 模型 from langchain.chat_models import ChatOpenAIchat ChatOpenAI(temperature0.0) ChatOpenAI的默认模型为gpt-3.5-turbo 提示模板 from langchain.prompts import ChatPromptTemplatetemplate_string """把由三个反引号分隔的文…

浅析Git子模块

Git 子模块&#xff08;Submodule&#xff09;是 Git 的一个功能&#xff0c;允许将一个 Git 仓库作为另一个 Git 仓库的子目录。这使得可以在一个项目中包含并管理一个或多个独立的项目&#xff08;仓库&#xff09;。子模块保持自己的独立版本控制&#xff0c;使得主项目和子…

网络通信Socket的简单案例

1.客户端代码 import java.io.*; import java.net.Socket;public class GreetingClient {public static void main(String[] args) throws IOException {//准备目的地参数String ip "localhost";int port6006;//建立工人Socket client new Socket(ip, port);//建…