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: 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

访问测试

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Flowable项目启动报错#java.time.LocalDateTime cannot be cast to java.lang.String

Flowable 项目启动后报错 flow项目第一次启动创建表成功&#xff0c;但是第二次启动时报错信息如下&#xff1a; 1、Error creating bean with name ‘appRepositoryServiceBean’ defined in class 2、Error creating bean with name ‘flowableAppEngine’: FactoryBean t…

Parallels Desktop for Mac 19.4.0 (build 54570) - 在 Mac 上运行 Windows

Parallels Desktop for Mac 19.4.0 (build 54570) - 在 Mac 上运行 Windows Parallels Desktop 19 请访问原文链接&#xff1a;Parallels Desktop for Mac 19.4.0 (build 54570) - 在 Mac 上运行 Windows&#xff0c;查看最新版。原创作品&#xff0c;转载请保留出处。 作者…

深度学习课程设计:构建未来的教育蓝图

深度学习课程设计&#xff1a;构建未来的教育蓝图 在近年来&#xff0c;深度学习已经从一项前沿的技术发展成为计算机科学领域不可或缺的一部分。随着其在多个行业中的应用日益增多&#xff0c;对深度学习教育的需求也在急剧上升。对于计划将深度学习纳入学术课程的教育者而言…

socket通信(C语言+Python)

在socket文件夹下创建server.c和client.c。 服务端代码&#xff08;server.c&#xff09;&#xff1a; #include <stdio.h> #include <Winsock2.h> void main() {WORD wVersionRequested;WSADATA wsaData;int err;wVersionRequested MAKEWORD( 1, 1 );err WSAS…

Ubuntu22.04之解决:无法关机和重启问题(二百四十三)

简介&#xff1a; CSDN博客专家&#xff0c;专注Android/Linux系统&#xff0c;分享多mic语音方案、音视频、编解码等技术&#xff0c;与大家一起成长&#xff01; 优质专栏&#xff1a;Audio工程师进阶系列【原创干货持续更新中……】&#x1f680; 优质专栏&#xff1a;多媒…

用 DataGridView 控件显示数据

使用DataGridView&#xff0c;可以很方便显示数据。 &#xff08;1&#xff09;Visual Studio版本&#xff1a;Visual Studio 2022 &#xff08;2&#xff09;应用程序类型&#xff1a;windows form &#xff08;3&#xff09;编程语言&#xff1a;C# 一、目标框架 .NET Fra…

问题:学生品德不良的矫正与教育可以采取以下措施()。 #其他#学习方法#微信

问题&#xff1a;学生品德不良的矫正与教育可以采取以下措施()。 A、创设良好的交流环境,消除情绪障碍 B、提高道德认识,消除意义障碍 C、锻炼学生与诱因作斗争的意志力 D、消除习惯惰性障碍 E、发现积极因素,多方法协同进行,促进转化 参考答案如图所示

numpy入门笔记

学习参考&#xff1a; 菜鸟教程 numpy入门博客 numpy入门视频 NumPy安装 默认情况使用国外线路&#xff0c;国外太慢&#xff0c;我们使用清华的镜像 pip3 install numpy scipy matplotlib -i https://pypi.tuna.tsinghua.edu.cn/simple一、创建数组 numpy.array(object, dt…

基于fabric封装一个简单的图片编辑器(vue 篇)

介绍 前言vue demo版本react 版本 前言 对 fabric.js 进行二次封装&#xff0c;实现图片编辑器的核心功能。核心代码 不依赖 ui响应式框架vue ,react 都适用。 只写了核心编辑相关代码便于大家后续白嫖二次开发 核心代码我就没有打包发布 会 和 业务代码一起放到项目中。 vu…

discuz点微同城源码34.7+全套插件+小程序前端

discuz点微同城源码34.7全套插件小程序前后端 模板挺好看的 带全套插件 自己耐心点配置一下插件 可以H5可以小程序

最大乘法算式-第13届蓝桥杯选拔赛Python真题精选

[导读]&#xff1a;超平老师的Scratch蓝桥杯真题解读系列在推出之后&#xff0c;受到了广大老师和家长的好评&#xff0c;非常感谢各位的认可和厚爱。作为回馈&#xff0c;超平老师计划推出《Python蓝桥杯真题解析100讲》&#xff0c;这是解读系列的第80讲。 最大乘法算式&…

动态规划求多段图的最短路径

一、基本思想 动态规划法将待求解问题分解成若干个相互重叠的子问题&#xff0c;每个子问题相互关联&#xff1b;动态规划法与分治法的区别就在于分治法的子问题相互不关联&#xff0c;而动态规划法的子问题是相互关联的&#xff0c;且有重叠的部分。 二、算法分析 动态规划…

细说NLP中的Embedding层

文章目录 前言一、为什么要引入Embedding层二、Embedding层是怎么发挥作用的&#xff1f;三、感受Embedding的强大四、为什么理解Embedding的底层原理&#xff1f;总结 前言 在构建高效的自然语言处理模型时&#xff0c;Embedding层是不可或缺的组成部分。它不仅可以帮助我们捕…

【免费Web系列】大家好 ,今天是Web课程的第十七天点赞收藏关注,持续更新作品 !

这是Web第一天的课程大家可以传送过去学习 http://t.csdnimg.cn/K547r SpingBoot原理 在前面十多天的课程当中&#xff0c;我们学习的都是web开发的技术使用&#xff0c;都是面向应用层面的&#xff0c;我们学会了怎么样去用。而我们今天所要学习的是web后端开发的最后一个篇…

通过影刀RPA,创建定时任务,自动获取图片验证码登录平台;

1.下载下载影刀客户端-影刀RPA - 影刀官网 2.安装&#xff0c;登录 3.应用创建->PC自动化应用 4.按照流程-创建【可双击或拖动】 5.保存 6.右击【创建的应用】->发版 7.选择触发器->【定时触发器】 根据提示配置 8.完成&#xff0c;每天平台会自动打开&#xff1b;…

文章解读与仿真程序复现思路——电网技术EI\CSCD\北大核心《基于日间-日内不确定集的中长期电源扩展规划》

本专栏栏目提供文章与程序复现思路&#xff0c;具体已有的论文与论文源程序可翻阅本博主免费的专栏栏目《论文与完整程序》 论文与完整源程序_电网论文源程序的博客-CSDN博客https://blog.csdn.net/liang674027206/category_12531414.html 电网论文源程序-CSDN博客电网论文源…

TCP攻击是怎么实现的,如何防御?

TCP&#xff08;Transmission Control Protocol&#xff09;是互联网协议族中的重要组成部分&#xff0c;用于在不可靠的网络上提供可靠的数据传输服务。然而&#xff0c;TCP协议的一些特性也使其成为攻击者的目标&#xff0c;尤其是DDoS&#xff08;Distributed Denial of Ser…

正确挑选百兆超薄款工业级网络/脉冲变压器(网络隔离滤波器)

Hqst华强盛&#xff08;石门盈盛电子&#xff09;导读&#xff1a;工业级百兆超薄款网络变压器的生产要特殊的超薄磁芯配正确线径的铜线&#xff0c;使用符合相应防潮标准的凝固胶水。 一 ̖ 首先来看下商业级的超薄款的百兆网络变压器&#xff1a; 商业级&#xff08;消费级&…

基于Zero-shot实现LLM信息抽取

基于Zero-shot方式实现LLM信息抽取 在当今这个信息爆炸的时代&#xff0c;从海量的文本数据中高效地抽取关键信息显得尤为重要。随着自然语言处理&#xff08;NLP&#xff09;技术的不断进步&#xff0c;信息抽取任务也迎来了新的突破。近年来&#xff0c;基于Zero-shot&#x…

Linux CGroup资源限制(概念限制进程CPU使用)

Linux CGroup资源限制&#xff08;详解&#xff09; 最近客户认为我们程序占用cpu过高&#xff0c;希望我们限制&#xff0c;排查之后发现是因为程序频繁gc导致&#xff0c;为了精细化、灵活的的限制&#xff0c;想到了使用Linux CGroup。 0 前置知识 ①概念及作用 官网&#…