【云安全】云原生-K8S-搭建/安装/部署

一、准备3台虚拟机

务必保证3台是同样的操作系统!

1、我这里原有1台centos7,为了节省资源和效率,打算通过“创建链接克隆”2台出来

2、克隆之前,先看一下是否存在k8s相关组件,或者docker相关组件

3、卸载原有的docker

sudo yum remove docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin docker-ce-rootless-extras
sudo rm -rf /var/lib/docker
sudo rm -rf /var/lib/containerd

4、克隆完毕

二、配置3台虚拟机

1、分配角色,修改主机名

hostnamectl set-hostname master-1
hostnamectl set-hostname node1
hostnamectl set-hostname node2#验证hostnamectl status

2、修改/etc/hosts

cat <<EOF >>/etc/hosts
192.168.255.128 master-1
192.168.255.129 node1
192.168.255.130 node2
EOF

3、安装docker-ce

# 安装docker所需的工具yum install -y yum-utils device-mapper-persistent-data lvm2# 配置阿里云的docker源yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo# 指定安装这个版本的docker-ceyum install -y docker-ce-18.09.9-3.el7# 启动dockersystemctl enable docker && systemctl start docker

4、配置k8s搭建条件

# 关闭防火墙systemctl disable firewalld
systemctl stop firewalld# 临时禁用selinuxsetenforce 0# 永久关闭 修改/etc/sysconfig/selinux文件设置sed -i 's/SELINUX=permissive/SELINUX=disabled/' /etc/sysconfig/selinux
sed -i "s/SELINUX=enforcing/SELINUX=disabled/g" /etc/selinux/config# 禁用交换分区swapoff -a# 永久禁用,打开/etc/fstab注释掉swap那一行sed -i 's/.*swap.*/#&/' /etc/fstab# 修改内核参数cat <<EOF >  /etc/sysctl.d/k8s.conf
net.bridge.bridge-nf-call-ip6tables = 1
net.bridge.bridge-nf-call-iptables = 1
EOF
sysctl --system

5、安装kubeadm、kubelet、kubectl

# 执行配置k8s阿里云源cat <<EOF > /etc/yum.repos.d/kubernetes.repo
[kubernetes]
name=Kubernetes
baseurl=https://mirrors.aliyun.com/kubernetes/yum/repos/kubernetes-el7-x86_64/
enabled=1
gpgcheck=1
repo_gpgcheck=1
gpgkey=https://mirrors.aliyun.com/kubernetes/yum/doc/yum-key.gpg https://mirrors.aliyun.com/kubernetes/yum/doc/rpm-package-key.gpg
EOF# 安装kubeadm、kubectl、kubeletyum install -y kubectl-1.16.0-0 kubeadm-1.16.0-0 kubelet-1.16.0-0# 启动kubelet服务systemctl enable kubelet && systemctl start kubelet

三、配置Master管理节点

1、初始化

使用以下命令初始化k8s

kubeadm init --image-repository registry.aliyuncs.com/google_containers --kubernetes-version v1.16.0 --apiserver-advertise-address 192.168.255.128 --pod-network-cidr=10.244.0.0/16 --token-ttl 0# 下载管理节点中用到的6个docker镜像,你可以使用docker images查看到。这里需要等待两分钟,会卡在[preflight] You can also perform this action in beforehand using ''kubeadm config images pull

初始化完成后会生成如下命令

master 节点依次执行截图上面三条命令

  mkdir -p $HOME/.kubesudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/configsudo chown $(id -u):$(id -g) $HOME/.kube/config

测试,查看节点,出现master节点

kubectl get node

node 节点执行下面的命令加入(截图下面的命令)

kubeadm join 192.168.255.128:6443 --token v88kvg.59quk6izz4ndb41w \--discovery-token-ca-cert-hash sha256:e9218e12297174ada4a3f416e04cf67532a8009946565630d3d5fb36aa1caf51 

如果忘记以上命令,可以使用如下命令获取

kubeadm token create --print-join-command

再次查看节点,三个节点都有了,但是STATUS处于“NotReady”

2、安装网络插件

上面虽然三个节点都有了,但是状态都是“NotReady”,这就需要master节点安装以下两个网络插件:calico、flannel

calico

# 安装 calico 网络插件yum install wget
wget https://kuboard.cn/install-script/calico/calico-3.9.2.yaml
export POD_SUBNET=10.244.0.0/16
sed -i "s#192\.168\.0\.0/16#${POD_SUBNET}#" calico-3.9.2.yaml
kubectl apply -f calico-3.9.2.yaml

flannel

安装flannel时,访问外网,需要代理,我这里使用宿主机的clash代理

#虚拟机使用宿主机clash代理export http_proxy=http://192.168.255.1:7890
export https_proxy=http://192.168.255.1:7890

执行以下命令安装flannel 

mkdir -p ~/k8s/
cd ~/k8s
curl -O https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.yml
kubectl apply -f kube-flannel.yml

以上两个插件安装完毕,一切顺利的话,会如下图所示,状态变成“Ready”,大功告成!

四、NotReady问题解决

按照以上操作完成后,发现status还是“NotReady”

如果前面的安装、配置都没问题的话,那极有可能是docker镜像源问题

k8s集群安装配置过程中,在进行集群安装还有网络插件配置的时候,都需要用到docker镜像仓库拉取镜像,随着国内各大docker镜像站都被墙了之后,导致docker拉取镜像都变成了一个难题,一般这时候找到一个可靠的镜像源就能解决问题。

修改配置文件

vim /etc/docker/daemon.json

换成以下镜像源

{"registry-mirrors": ["https://docker.m.daocloud.io","https://noohub.ru","https://huecker.io","https://dockerhub.timeweb.cloud","https://docker.rainbond.cc","https://docker.1ms.run","https://docker.1panel.live","https://hub1.nat.tf"]
}

更换镜像源后,重启,成功

sudo systemctl restart docker

五、其它版本搭建(v1.23)

由于在2022年k8s的1.24版本更新中已经完全放弃了docker作为容器运行时软件,想要继续使用docker作为容器运行时软件,只能安装1.23以下的版本,然后k8s1.23版本支持的最新docker是20.10

参考文章:

K8s安装部署--超级详细(无坑,v1.23)_kubernetes 1.23-CSDN博客

按照这篇文章,也可以成功搭建1.23版本的k8s

自 1.24 版起,Dockershim 已从 Kubernetes 项目中移除。弃用 Docker 这个底层运行时,转而支持符合为 Kubernetes 创建的容器运行接口 Container Runtime Interface (CRI) 的运行时。对于Kubernetes 的终端用户不会有太大影响。这也并不意味着 Docker 已死、也不意味着不能或不该继续把 Docker 用作开发工具。Docker 仍然是构建容器的利器,使用命令 docker build 构建的镜像在 Kubernetes 集群中仍然可以运行。 

六、文末

辞旧迎新,万象更新!在这蛇年来临之际,向网络安全领域的红队、蓝队师傅们送上最诚挚的祝福:红队师傅攻无不克,蓝队师傅守如磐石,新的一年愿你们在赛场上争锋相对,在安全路上并肩而行!蛇年灵动,愿你们敏锐如蛇,攻守皆有道;事业高升,财源滚滚;生活如蛇盘珠玉,圆满无缺!感谢你们的付出,为数字世界的安全保驾护航!新春快乐,阖家幸福,蛇年大吉,安“全”常在!

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

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

相关文章

【JavaEE】_MVC架构与三层架构

目录 1. MVC架构 2. 三层架构 3. MVC架构与三层架构的对比 3.1 MVC与三层架构的对比 3.2 MVC与三层架构的共性 1. MVC架构 在前文已介绍关于SpringMAC的设计模式&#xff0c;详见下文&#xff1a; 【JavaEE】_Spring Web MVC简介-CSDN博客文章浏览阅读967次&#xff0c;点…

基于Langchain-Chatchat + ChatGLM 本地部署知识库

一、相关环境 参考链接: Github:https://github.com/chatchat-space/Langchain-Chatchat Langchain-chatchat版本&#xff1a;v0.3.1 安装环境&#xff1a;Ubuntu&#xff1a;22.04&#xff0c;CUDA&#xff1a;12.1 二、搭建过程 2.1 环境配置 2.1.1 创建chatchat虚拟环…

【win11】解决msrdc.exe窗口启动导致周期性失去焦点

msrdc.exe randomly stealing focus 最近写代码时&#xff0c;经常出现周期性失去焦点的情况非常恼人,不确定是否是Q4的微软更新引起&#xff1f;换了输入法也不行&#xff0c;只能借助工具来查看&#xff1a;大神的工具非常好&#xff1a; 可以发现是remote app 启动了一个UI…

危机13小时:追踪一场GitHub投毒事件

事件概要 自北京时间 2024.12.4 晚间6点起&#xff0c; GitHub 上不断出现“幽灵仓库”&#xff0c;仓库中没有任何代码&#xff0c;只有诱导性的病毒文件。当天&#xff0c;他们成为了 GitHub 上 star 增速最快的仓库。超过 180 个虚假僵尸账户正在传播病毒&#xff0c;等待不…

论文阅读(十三):复杂表型关联的贝叶斯、基于系统的多层次分析:从解释到决策

1.论文链接&#xff1a;Bayesian, Systems-based, Multilevel Analysis of Associations for Complex Phenotypes: from Interpretation to Decision 摘要&#xff1a; 遗传关联研究&#xff08;GAS&#xff09;报告的结果相对稀缺&#xff0c;促使许多研究方向。尽管关联概念…

设计模式-建造者模式、原型模式

目录 建造者模式 定义 类图 优缺点 角色 建造者模式和工厂模式比较 使用案例 原型模式 定义 类图 优缺点 应用场景 应用类型 浅克隆 深克隆 建造者模式 定义 将一个复杂的对象的构造与它的表示分离&#xff0c;使同样的构建过程可以创建不同的表示&#xff0c;…

Python GUI 开发 | Qt Designer — 工具介绍

关注这个框架的其他相关笔记&#xff1a;Python GUI 开发 | PySide6 & PyQt6 学习手册-CSDN博客 Qt Designer 即 Qt 设计师&#xff0c;是一个强大、灵活的可视化 GUI 设计工具&#xff0c;可以帮助用户加快开发 PySide6 程序的速度。 Qt Designer 是专门用来制作 PySide6…

园区管理智能化创新引领企业效能提升与风险控制新趋势

内容概要 在现代园区管理中&#xff0c;智能化创新正成为越来越多企业优化效能和控制风险的重要途径。通过引入先进的技术手段&#xff0c;企业能够更高效地管理资源&#xff0c;并实现全面的风险控制。 首先&#xff0c;园区管理系统的基本概念和发展现状让我们看到科技与管…

LTV预估 | 深度学习PLTV之开山鼻祖ZILN

&#x1f923; 这一集让我们欢迎基于深度学习的pltv方法&#xff1a;ZILN&#xff0c;ZILN可以说是后面很多研究的参考方法&#xff0c;我看了好几篇最新的pltv论文&#xff0c;都是基于ZILN来做的。 文章目录 1 精简总结2 背景&挑战&#xff1a;3 方法&#xff1a;实验&am…

docker安装emqx

emqx安装 拉取emqx镜像 docker pull emqx/emqx:v4.1.0 运行docker容器 docker run -tid --name emqx -p 1883:1883 -p 8083:8083 -p 8081:8081 -p 8883:8883 -p 8084:8084 -p 18083:18083 emqx/emqx:v4.1.0 放行端口 1、如果要是自己的虚拟机&#xff0c;并且关闭了防火墙&a…

【C++题解】1393. 与7无关的数?

欢迎关注本专栏《C从零基础到信奥赛入门级&#xff08;CSP-J&#xff09;》 问题&#xff1a;1393. 与7无关的数&#xff1f; 类型&#xff1a;简单循环 题目描述&#xff1a; 一个整数&#xff0c;如果这个数能够被 7 整除&#xff0c;或者其中有一位是7&#xff0c;我们称…

分享| RL-GPT 框架通过慢agent和快agent结合提高AI解决复杂任务的能力-Arxiv

结论 “RL-GPT: Integrating Reinforcement Learning and Code-as-policy” RL-GPT 框架为解决大语言模型在复杂任务处理中的难题提供了创新有效的途径&#xff0c; 旨在将强化学习&#xff08;RL&#xff09;和代码即策略相结合&#xff0c; 以解决大语言模型&#xff08…

多级缓存(亿级并发解决方案)

多级缓存&#xff08;亿级流量&#xff08;并发&#xff09;的缓存方案&#xff09; 传统缓存的问题 传统缓存是请求到达tomcat后&#xff0c;先查询redis&#xff0c;如果未命中则查询数据库&#xff0c;问题如下&#xff1a; &#xff08;1&#xff09;请求要经过tomcat处…

3、C#基于.net framework的应用开发实战编程 - 实现(三、三) - 编程手把手系列文章...

三、 实现&#xff1b; 三&#xff0e;三、编写应用程序&#xff1b; 此文主要是实现应用的主要编码工作。 1、 分层&#xff1b; 此例子主要分为UI、Helper、DAL等层。UI负责便签的界面显示&#xff1b;Helper主要是链接UI和数据库操作的中间层&#xff1b;DAL为对数据库的操…

RPC是什么?和HTTP区别?

RPC 是什么&#xff1f;HTTP 是什么&#xff1f; 作为一个程序员&#xff0c;假设我们需要从A电脑的进程发送一段数据到B电脑的进程&#xff0c;我们一般会在代码中使用 Socket 进行编程。 此时&#xff0c;可选性一般就是 TCP 和 UDP 二选一&#xff0c;由于 TCP 可靠、UDP 不…

在无sudo权限Linux上安装 Ollama 并使用 DeepSeek-R1 模型

本教程将指导你如何在 Linux 系统上安装 Ollama&#xff08;一个本地运行大型语言模型的工具&#xff09;&#xff0c;并加载 DeepSeek-R1 模型。DeepSeek-R1 是一个高性能的开源语言模型&#xff0c;适用于多种自然语言处理任务。 DeepSeek-R1 简介 DeepSeek-R1 是 DeepSeek …

大数据治理实战:架构、方法与最佳实践

&#x1f4dd;个人主页&#x1f339;&#xff1a;一ge科研小菜鸡-CSDN博客 &#x1f339;&#x1f339;期待您的关注 &#x1f339;&#x1f339; 1. 引言 大数据治理是确保数据质量、合规性和安全性的重要手段&#xff0c;尤其在数据驱动决策和人工智能应用日益普及的背景下&…

JavaScript_02 表单

表单常用演示: 1.图片 结果失真了... 2.切换图片 切换结果 3.表单:

【MySQL】初始MySQL、库与表的操作

目录 基本使用 使用案例 SQL分类 存储引擎 库的操作 字符集和校验规则 查看系统默认字符集和校验规则 查看数据库支持的字符集 查看数据库支持的字符集校验规则 指定编码常见数据库 校验规则对数据库的影响 操纵数据库 库的备份与恢复 表的操作 创建表 查看表 …

three.js用粒子使用canvas生成的中文字符位图材质

three.js用粒子使用canvas生成中文字符材质 <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0"><title>Three.…