基于云主机的k8s环境搭建

1. 申请三台云主机(按量付费即可)

内网IP配置节点角色
172.17.0.92C4Gk8s-master
172.17.0.82C2Gk8s-node1
172.17.0.172C2Gk8s-node2

2. 安装Kubernetes集群(全部节点执行以下操作)

  • 关闭防火墙
systemctl stop firewalld
systemctl disable firewalld
  • 关闭selinux
sed -i 's/enforcing/disabled/' /etc/selinux/config  # 永久
setenforce 0  # 临时

ps: 以上两条命令2选1执行

  • 禁用swap分区
sed -ri 's/.swap./#&/' /etc/fstab    # 永久(需要重启机器才能生效)
swapoff -a  # 临时

ps: 以上两条命令2选1执行,第一条命令需要重启机器生效!

  • 三台机器分别设置主机名
hostnamectl set-hostname  k8s-master
hostnamectl set-hostname  k8s-node1
hostnamectl set-hostname  k8s-node2 
  • 三台机器添加hosts
cat >> /etc/hosts << EOF

172.17.0.9 k8s-master

172.17.0.8 k8s-node1

172.17.0.17 k8s-node2

EOF
  • 将桥接的IPv4流量传递到iptables的链
cat > /etc/sysctl.d/k8s.conf << EOF

net.bridge.bridge-nf-call-ip6tables = 1

net.bridge.bridge-nf-call-iptables = 1

EOF
sysctl --system  # 执行该命令生效
  • 机器时间同步
yum install ntpdate -y

ntpdate time.windows.com
  • 所有节点安装docker(略)
https://blog.csdn.net/qq_36940806/article/details/126515058 
  • 修改docker配置,设置cgroup驱动
vim /etc/docker/daemon.json
{
// 添加以下内容
"exec-opts": ["native.cgroupdriver=systemd"],
}
  • 重启docker
systemctl daemon-reload //重新加载docker服务的配置文件
systemctl restart docker
  • 添加k8s阿里云yum软件源
cat > /etc/yum.repos.d/kubernetes.repo << EOF
[kubernetes]
name=Kubernetes
baseurl=https://mirrors.aliyun.com/kubernetes/yum/repos/kubernetes-el7-x86_64
enabled=1
gpgcheck=0
repo_gpgcheck=0
gpgkey=https://mirrors.aliyun.com/kubernetes/yum/doc/yum-key.gpg https://mirrors.aliyun.com/kubernetes/yum/doc/rpm-package-key.gpg
EOF
  • 安装kubeadm,kubelet和kubectl
yum install -y kubelet-1.23.0 kubeadm-1.23.0 kubectl-1.23.0
systemctl start kubelet
systemctl enable kubelet

3. 部署Kubernetes集群(k8s-master节点执行以下操作)

  • 修改kubeadm的镜像地址为国内镜像地址
kubeadm config images list  --image-repository registry.aliyuncs.com/google_containers
  • 拉取镜像
kubeadm config images pull  --image-repository registry.aliyuncs.com/google_containers 
  • 初始化kubernetes
kubeadm init \
  --apiserver-advertise-address=172.17.0.9 \
  --image-repository registry.aliyuncs.com/google_containers \
  --kubernetes-version v1.23.0 \
  --service-cidr=10.96.0.0/12 \
  --pod-network-cidr=10.244.0.0/16 \
  --ignore-preflight-errors=all
  
# –apiserver-advertise-address # k8s-master 机器 ip
# –image-repository # 指定阿里云镜像仓库地址
# –kubernetes-version # k8s版本,需要与安装版本一致
# –service-cidr #集群内部虚拟网络,pod统一访问入口
# –pod-network-cidr # k8s内部的pod节点之间网络可以使用的IP段
  • 记录上一步骤执行结果中加入集群的join命令(后续k8s-node节点加入集群需要使用到)
# eg: 形式如下
kubeadm join 172.16.0.9:6443 --token 3pzsx0.xys1k68ntvtpa58q \
	--discovery-token-ca-cert-hash sha256:391515fc9c9f19651553afb2454e7797459c69d56f015559e694dc07a118f8ee
  • 执行以下操作(根据上一步骤执行结果提示)
mkdir -p $HOME/.kube
sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
sudo chown $(id -u):$(id -g) $HOME/.kube/config

4. 配置kubelet网络(k8s-master节点执行以下操作)

  • 下载 kube-flannel.yml
wget https://raw.githubusercontent.com/flannel-io/flannel/master/Documentation/kube-flannel.yml

ps: 下载不下来, 通过网站https://tool.lu/ip/获取域名 raw.githubusercontent.com 最新的ip地址,写入hosts即可

  • 修改kube-flannel.yml配置文件的 Newwork对应的值, 需要与与执行 kubeadm init 时,输入的 pod-network-cidr 对应的值一致
net-conf.json: |
  {
    "Network": "10.244.0.0/16",
    "Backend"": {
      "Type": "vxlan"
  }
} 
  • 安装flannel组件
kubectl apply -f kube-flannel.yml
  • 查看flannel组件状态
kubectl get pod --all-namespaces

ps: 需要所有的pod状态为running才可以

  • 查看主节点的状态
kubectl get cs

在这里插入图片描述
ps: 需要为Healthy才可以

  • 查看所有节点状态
kubectl get nodes 

ps: 此时只有主节点,子节点尚未加入集群

子节点加入k8s集群

  • k8s-node节点执行join命令(来自之前步骤记录的结果)
kubeadm join 172.16.0.9:6443 --token 3pzsx0.xys1k68ntvtpa58q --discovery-token-ca-cert-hash sha256:391515fc9c9f19651553afb2454e7797459c69d56f015559e694dc07a118f8ee
  • k8s-master节点执行以下命令查看所有节点状态
kubectl get nodes 

在这里插入图片描述
ps: 必须要都为Ready状态才算正常

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

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

相关文章

Java数组(3)

我是南城余&#xff01;阿里云开发者平台专家博士证书获得者&#xff01; 欢迎关注我的博客&#xff01;一同成长&#xff01; 一名从事运维开发的worker&#xff0c;记录分享学习。 专注于AI&#xff0c;运维开发&#xff0c;windows Linux 系统领域的分享&#xff01; 本…

【Linux】介绍:进程退出、进程等待、进程程序替换

目录 一、进程退出 _exit函数 exit函数 _exit()与exit比较 return退出 二、进程等待 wait方法 waitpid方法 三、进程程序替换 替换函数 函数解释 命名理解 使用举例 一、进程退出 正常终止&#xff08;可以通过 echo $? 查看进程退出码&#xff09;&#xff1a;1.…

实时AI绘画模型SDXL Turbo核心基础知识详解 | 【算法兵器谱】

Rocky Ding 公众号&#xff1a;WeThinkIn 写在前面 【算法兵器谱】栏目专注分享AI行业中的前沿/经典/必备的模型&论文&#xff0c;并对具备划时代意义的模型&论文进行全方位系统的解析。也欢迎大家提出宝贵的优化建议&#xff0c;一起交流学习&#x1f4aa; 大家好&…

CE从初阶到大牛--函数

1、编写函数&#xff0c;实现打印绿色OK和红色FAILED,判断是否有参数&#xff0c;存在为Ok&#xff0c;不存在为FAILED if [ $# -gt 0 ]; thenecho -e "\033[32mOK\033[0m" # 绿色 OK elseecho -e "\033[31mFAILED\033[0m" # 红色 FAILED fi 2、编写函数…

蓝桥杯专题-真题版含答案-【罗马数字转十进制】【身份证校验】【四方定理】【Excel地址转换】

Unity3D特效百例案例项目实战源码Android-Unity实战问题汇总游戏脚本-辅助自动化Android控件全解手册再战Android系列Scratch编程案例软考全系列Unity3D学习专栏蓝桥系列ChatGPT和AIGC &#x1f449;关于作者 专注于Android/Unity和各种游戏开发技巧&#xff0c;以及各种资源分…

MATLAB2022安装下载教程

安装包需从夸克网盘自取&#xff1a; 链接&#xff1a;https://pan.quark.cn/s/373ffc9213a1 提取码&#xff1a;N7PW 1.将安装包解压 2.以管理员的身份运行文件夹中的setup文件 3.点击高级选项--->我有文件安装密钥 4. 选择【是】&#xff0c;进入下一步 5.输入密钥 0532…

CCD相机为什么需要积分球均匀光源

积分球内腔是一个具备高漫反射特性的收光球&#xff0c;其内部中空、内球面均匀地涂有漫反射材料&#xff0c;具有匀光与混光的作用&#xff0c;因此常常被用来做收光的均光球。由于光源性能等因素的影响&#xff0c;可能导致出射光线带偏振方向、出光不均匀&#xff0c;使用积…

游戏、算法竞赛与退役(流水账版)

写在前面 不出意外的话&#xff0c;这东西本该咕到翻年之后再发的&#xff0c;但好像催稿催的有点厉害&#xff0c;于是就找个机会把他写了&#xff08;笑&#xff09; 最初是只想写个算法竞赛退役记的&#xff0c;后面发觉写起来就有点收不住&#xff0c;算法竞赛牵扯到太多…

基于YOLOv8的自定义数据姿势估计

在不断发展的计算机视觉领域中&#xff0c;姿势估计凭借其重要的创新而脱颖而出&#xff0c;彻底改变了我们理解和与视觉数据交互的方式。Ultralytics YOLOv8 处于这一转变的前沿&#xff0c;提供了一种强大的工具&#xff0c;捕捉图像中物体方向和运动的微妙之处。 传统上&…

JDK8安装教程分享

&#x1f9cb;&#x1f9cb;今天&#xff0c;在博客社区看到一篇非常好的&#xff0c;关于JDK8的安装教程&#xff0c;亲试有用&#xff0c;现分享给大家。。。 JDK8安装

Redis-对象

参考资料 极客时间Redis&#xff08;亚风&#xff09; Redis对象 String • 基本编码⽅式是RAW&#xff0c;基于简单动态字符串&#xff08;SDS&#xff09;实现&#xff0c;存储上限为512mb。 • 如果存储的SDS⻓度⼩于44字节&#xff0c;则会采⽤EMBSTR编码&#xff0c;此…

线性代数(一)

1.标量&#xff1a;标量由只有⼀个元素的张量表⽰。 x np.array(3.0) y np.array(2.0) x y, x * y, x / y, x ** y (array(5.), array(6.), array(1.5), array(9.))2.向量&#xff1a;向量可以被视为标量值组成的列表&#xff0c;列向量是向量的默认⽅向。 x np.arange(4…

MyBatis原理解读

我们项目中多用MyBatis进行数据库的读写,开源的MyBatis-Plus框架对其进行了增强,使用上更加简单,我们之前的很多项目也是直接用的MyBatis-Plus。 数据库操作的时候,简单的单表读写,我们可以直接在方法里链式组装SQL,复杂的SQL或涉及多表联合join的,需要在xml手写SQL语句…

RabbitMQ不公平分发问题分析及问题解决

1.不公平分发 1.1 不公平分发策略是什么&#xff1f; 在 RabbitMQ 中&#xff0c;不公平分发&#xff08;Unfair Dispatch&#xff09;是指当多个消费者&#xff08;Consumers&#xff09;同时订阅同一个队列&#xff08;Queue&#xff09;时&#xff0c;消息的分发机制是不公…

网上下载的python如何运行,python可以下载到d盘吗

本篇文章给大家谈谈如何在python官网上下载python&#xff0c;以及python可以在手机上下载吗&#xff0c;希望对各位有所帮助&#xff0c;不要忘了收藏本站喔。 从Python官网下载Python的步骤 如果你是想要学习Python编程的初学者&#xff0c;那么第一步就是要从官方网站下载Py…

uniGUI之MASK遮罩

在页面进行后台数据库操作的时候&#xff0c;不想 用户再进行 页面上的 其他操作&#xff0c;这时候就要 将页面 遮罩。例如UniDBGrid有LoadMask属性。 1]使用ScreenMask函数 2]JS调用 3]一个控件控制遮罩另一个控件(如Button遮罩UniDBGrid) //很简单&#xff0c;本例子就是告…

Android14创建Pixel6 Pro模拟器(一百七十)

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

Vue3项目中集成mars3D简单三部曲

Vue3项目中集成mars3D简单三部曲 这里是参考网址&#xff0c;大佬可以点击一件跳转 1.安装依赖 npm install vite-plugin-mars3d --save-dev2.修改 vite.config.ts 配置文件 import { defineConfig } from vite; import { mars3dPlugin } from vite-plugin-mars3d;export d…

C++ Qt开发:自定义Dialog对话框组件

Qt 是一个跨平台C图形界面开发库&#xff0c;利用Qt可以快速开发跨平台窗体应用程序&#xff0c;在Qt中我们可以通过拖拽的方式将不同组件放到指定的位置&#xff0c;实现图形化开发极大的方便了开发效率&#xff0c;本章将重点介绍自定义Dialog组件的常用方法及灵活运用。 在…

Stable-Diffusion|从图片反推prompt的工具:Tagger(五)

stable-diffusion-webui-wd14-tagger 前面几篇&#xff1a; Stable-Diffusion|window10安装GPU版本的 Stable-Diffusion-WebUI遇到的一些问题&#xff08;一&#xff09; 【Stable-Diffusion|入门怎么下载与使用civitai网站的模型&#xff08;二&#xff09;】 Stable-Diffusi…
最新文章