k8s测试题

news2025/1/20 10:46:39

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: nginx
  name: nginx01
spec:
  nodeName: node01
  containers:
  - image: nginx
    name: nginx
    ports:
    - containerPort: 80
    volumeMounts:
    - name: node01-html
      mountPath: /usr/share/nginx/html
      readOnly: false
  volumes:
  - name: node01-html
    hostPath:
      path: /data
      type: DirectoryOrCreate

---
apiVersion: v1
kind: Pod
metadata:
  labels:
    run: nginx
  name: nginx02
spec:
  nodeName: node02
  containers:
  - image: nginx
    name: nginx
    ports:
    - containerPort: 80
    volumeMounts:
    - name: node02-html
      mountPath: /usr/share/nginx/html
      readOnly: false
  volumes:
  - name: node02-html
    hostPath:
      path: /data
      type: 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: nginx
  name: nginx-service
spec:
  type: NodePort
  ports:
    - protocol: TCP
      port: 80
      targetPort: 80
      nodePort: 30000
  selector:
    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
EOF
 
yum 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 keepalived
 
global_defs {                     # 接收邮件地址
   notification_email {
     acassen@firewall.loc
     failover@firewall.loc
     sysadmin@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节点的为 BACKUP
    interface ens33           #指定网卡名称 ens33
    virtual_router_id 51      #指定vrid,两个节点要一致
    priority 100              #nginx01节点的为 100,nginx02节点的为 80
    advert_int 1
    authentication {
        auth_type PASS
        auth_pass 1111
    }
virtual_ipaddress {           #指定虚拟ip地址
        192.168.246.100/24
    }
 
    track_script {                   #指定vrrp_script配置的脚本
        check_nginx
    }
}
#!/bin/bash
killall -0 nginx
if [ $? -ne 0 ];then
    systemctl 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.coloradmin.cn/o/1801646.html

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

相关文章

2024中国大学计算机科学与技术专业排名(非常详细)零基础入门到精通,收藏这一篇就够了

今天 6 月 8 号&#xff0c;高考第二天&#xff0c;随着大部分地区的高考结束&#xff0c;接下来就是焦急的等待分数的公布&#xff0c;然后学生们就迎来人生中的一个重要时刻——选择大学和专业。 在众多专业中&#xff0c;计算机科学与技术一直是备受瞩目的热门选择&#xf…

端午节,蚓链数字营销开启商家全新玩法!

端午节即将来临&#xff0c;这个传统节日对于商家来说&#xff0c;是否又是一个狂欢的节日呢&#xff1f;答案是肯定的&#xff01;只要运用蚓链数字化营销方式&#xff0c;梦想皆有可能实现&#xff01; 在当今数字化的时代&#xff0c;商家们拥有了更多的机会和手段来吸引消费…

图像编解码器在AI绘画中的革新作用

随着人工智能技术的飞速发展&#xff0c;AI绘画已经从一个简单的概念演变为一个充满创意与可能性的领域。在这场技术与艺术的融合中&#xff0c;图像编解码器扮演着至关重要的角色。它们不仅提升了AI绘画的质量和效率&#xff0c;还拓宽了艺术创造的边界。本篇博客将深入探讨图…

CW32F030K8T7单片机在即热式热水器的应用介绍

随着智能家居技术的不断进步&#xff0c;即热式热水器作为现代家庭中的重要组成部分&#xff0c;正逐渐向智能化、节能化方向发展。本方案通过采用武汉芯源半导体的CW32F030系列单片机&#xff0c;以其高性能、超强抗干扰等特性&#xff0c;为即热式热水器的智能化提供了理想的…

【多模态】38、DT-VQA | 专为提升多模态大模型的密集文本场景能力的数据集

文章目录 一、背景二、方法2.1 数据来源2.2 数据标注2.3 测评标准2.4 训练策略 三、效果3.1 定量分析3.2 定性分析 论文&#xff1a;Exploring the Capabilities of Large Multimodal Models on Dense Text 代码&#xff1a;https://github.com/Yuliang-Liu/MultimodalOCR&…

Unity DOTS技术(十三) ComponentSystem及JobComponentSystem

文章目录 一.ComponentSystem介绍二.JobComponentSystem 一.ComponentSystem介绍 1.继承ComponentSystem需要实现抽象OnUpdate() 2.与SystemBase不同,ComponentSystem不包含LambdaSingleJobDescription, 3.CompoentSystem的带代码都是在主线程上运行,不支持多线程. 4.并不能在…

毫米波SDK使用1

本文档是AM273x等毫米波雷达处理器SDK的配置和使用&#xff0c;主要参考TI的官方文档《mmwave mcuplus sdk user guide》。这里仅摘取其中重要的部分&#xff0c;其余枝节可参考原文。 2 系统概览 mmWave SDK分为两个主要组件:mmWave套件和mmWave演示。 2.1. mmWave套件 mmWa…

在虚拟机上搭建 Docker Kafka 宿主机器程序无法访问解决方法

1、问题描述 在虚拟机CentOS-7上搭建的Docker Kafka ,docker内部可以创建Topic、可以生产者数据、可以消费数据&#xff0c;而在宿主机开发程序无法消费Docker Kafka的数据。 1.1、运行情况 [dockerlocalhost ~]$ docker ps -a CONTAINER ID IMAGE COMMAND…

YOLOv8 segment介绍

1.YOLOv8图像分割支持的数据格式&#xff1a; (1).用于训练YOLOv8分割模型的数据集标签格式如下: 1).每幅图像对应一个文本文件&#xff1a;数据集中的每幅图像都有一个与图像文件同名的对应文本文件&#xff0c;扩展名为".txt"; 2).文本文件中每个目标(object)占一行…

CF279A Point on Spiral 题解

解题思路 按照题目中的规律画出来的图片如下&#xff1a; 那么&#xff0c;我们直接根据规律判断当前查询的节点在那一条线段上就可以了。易得&#xff0c;当前的基础转向次数为 max ( ∣ x ∣ − 1 , ∣ y ∣ − 1 ) 4 (|x|-1,|y|-1)\times 4 (∣x∣−1,∣y∣−1)4&#x…

芯片软件复位的作用

在调试系统或现场使用时&#xff0c;常用软件复位而不是频繁地通过断电来实现复位操作有以下优劣势&#xff1a; 优势&#xff1a; 数据完整性&#xff1a;通过软件复位&#xff0c;系统可以在一个受控的环境中重新启动&#xff0c;确保数据的完整性和一致性&#xff0c;避免…

Spring Boot 使用自定义注解和自定义线程池实现异步日志记录

&#x1f604; 19年之后由于某些原因断更了三年&#xff0c;23年重新扬帆起航&#xff0c;推出更多优质博文&#xff0c;希望大家多多支持&#xff5e; &#x1f337; 古之立大事者&#xff0c;不惟有超世之才&#xff0c;亦必有坚忍不拔之志 &#x1f390; 个人CSND主页——Mi…

Diffusers代码学习: IP-Adapter Inpainting

IP-Adapter还可以通过Inpainting自动管道和蒙图方式生成目标图片。 # 以下代码为程序运行进行设置&#xff0c;使用Inpainting 的自动管道&#xff0c; import os os.environ["HF_ENDPOINT"] "https://hf-mirror.com"from diffusers import AutoPipelin…

0基础学习区块链技术——链之间数据同步样例

大纲 创建区块新增链区块链直接替换 我们可以在https://blockchaindemo.io/体验这个过程。 创建区块 默认第一个链叫Satoshi(中本聪)。链上第一个区块叫“创世区块”——Genesis Block。后面我们会看到创建的第二条链第一个区块也是如此。 新增链 新创建的链叫Debby。默认…

android中调用onnxruntime框架

创建空白项目 安装Android Studio及创建空白项目参考&#xff1a;【安卓Java原生开发学习记录】一、安卓开发环境的搭建与HelloWorld&#xff08;详细图文解释&#xff09;_安卓原生开发-CSDN博客 切记&#xff1a;build configuration language 一定选择Groovy&#xff01;官…

向量化:机器学习中的效率加速器与数据桥梁

在机器学习领域的广袤天地中&#xff0c;向量化技术以其独特的魅力&#xff0c;为数据处理和模型训练注入了强大的动力。本文将深入探讨向量化在机器学习领域中的体现&#xff0c;剖析其如何助力模型实现高效的数据处理和精确的结果预测&#xff0c;并通过丰富的案例和详尽的数…

【人工智能Ⅱ】实验8:生成对抗网络

实验8&#xff1a;生成对抗网络 一&#xff1a;实验目的 1&#xff1a;理解生成对抗网络的基本原理。 2&#xff1a;学会构建改进的生成对抗网络&#xff0c;如DCGAN、WGAN、WGAN-GP等。 3&#xff1a;学习在更为真实的数据集上应用生成对抗网络的方法。 二&#xff1a;实验…

Vue2学习(04)

目录 一、组件的三大组成部分 二、组件的样式冲突scoped 三、scoped原理 ​编辑 四、data是一个函数 五、组件通信 六、props详解 七、非父子通信 1.eventbus事件总线(可以一传多)--->作用是在非父子组件之间&#xff0c;进行简易的消息传递&#xff08;复杂场景---&…

深拷贝、浅拷贝、引用拷贝

深拷贝和浅拷贝的区别 1. 引用拷贝2. 对象拷贝 1. 引用拷贝 两个对象指向同一个地址值。 创建一个指向对象的引用变量的拷贝Teacher teacher new Teacher("Taylor",26); Teacher otherteacher teacher; System.out.println(teacher); System.out.println(otherte…

【面试干货】如何选择MySQL数据库存储引擎(MyISAM 或 InnoDB)

【面试干货】如何选择MySQL数据库存储引擎(MyISAM 或 InnoDB&#xff09; &#x1f496;The Begin&#x1f496;点点关注&#xff0c;收藏不迷路&#x1f496; MySQL数据库存储引擎是一个 关键 的考虑因素。MySQL提供了多种存储引擎&#xff0c;其中最常用的是 MyISAM 和 InnoD…