Centos7安装K8S集群环境

一、系统设置

1、关闭swap

临时关闭swap

swapoff -a

永久关闭

注释掉 /etc/fstab 中的下面配置

#/dev/mapper/centos-swap swap swap defaults 0 0
2、 关闭SELinux

kubelet不支持SELinux, 这里需要将SELinux设置为permissive模式

setenforce 0 sed -i 's/^SELINUX=enforcing$/SELINUX=permissive/' /etc/selinux/config

主节点执行

#主节点 [root@master k8s]# hostnamectl set-hostname k8s-master

从节点执行

#从节点* [root@master k8s]# hostnamectl set-hostname k8s-node1

修改hosts文件,追加域名映射

[root@master k8s]# cat >>/etc/hosts<<EOF172.16.1.182 k8s-master172.16.1.183 k8s-node1
3、关闭防火墙
systemctl disable firewalldsystemctl stop firewalld
4、配置sysctl

创建文件/etc/sysctl.d/k8s.conf, 文件内容如下

net.bridge.bridge-nf-call-ip6tables = 1net.bridge.bridge-nf-call-iptables = 1net.ipv4.ip_forward = 1

执行

sysctl -p /etc/sysctl.d/k8s.conf
5、配置安装源为阿里
5.1 配置yum安装源

备份

mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backup

下载阿里源

​
wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo​
5.2 配置k8s源

vim /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
5.3 重建yum缓存
yum clean allyum makecache fastyum -y update

二、安装docker

1、安装docker

卸载旧版本

yum remove docker docker-client docker-client-latest docker-common docker-latest docker-latest-logrotate docker-logrotate docker-engine

安装docker

​
yum install -y yum-utils device-mapper-persistent-data lvm2 yum-config-manager  --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo yum install -y docker-ce docker-ce-cli containerd.io​
2、docker配置

创建文件/etc/docker/daemon.json,写入配置 mkdir /etc/docker/ vim /etc/docker/daemon.json

​
{ "registry-mirrors":["https://1nj0zren.mirror.aliyuncs.com","https://docker.mirrors.ustc.edu.cn","http://f1361db2.m.daocloud.io","https://registry.docker-cn.com"] }​
3、重启docker
mkdir -p /etc/systemd/system/docker.service.dsystemctl daemon-reloadsystemctl restart docker

三、集群安装

1、安装kubeadm, kubelet和kubectl
yum install -y kubelet kubeadm kubectl kubernetes-cni --disableexcludes=kubernetessystemctl enable --now kubelet && systemctl start kubelet

此处我复制了从节点k8s-node1,目的是从节点不想安装k8s相关包了。

2、使用kubeadm创建集群

只在master节点执行,此处注意 172.16.1.182 是你安装k8s master节点的ip地址

kubeadm init --apiserver-advertise-address=172.16.1.182 --image-repository registry.aliyuncs.com/google_containers --kubernetes-version v1.28.0 --service-cidr=10.96.0.0/12 --pod-network-cidr=10.244.0.0/16

此处会报错,

W0423 17:12:43.250196 1811 checks.go:835] detected that the sandbox image "registry.k8s.io/pause:3.6" of the container runtime is inconsistent with that used by kubeadm. It is recommended that using "registry.aliyuncs.com/google_containers/pause:3.9" as the CRI sandbox image.

解决方案:

sudo containerd config default | sudo tee /etc/containerd/config.tomlsudo sed -i 's#SystemdCgroup = false#SystemdCgroup = true#g' /etc/containerd/config.tomlsudo sed -i 's#sandbox_image = "registry.k8s.io/pause:3.6"#sandbox_image = "registry.cn-hangzhou.aliyuncs.com/google_containers/pause:3.9"#g' /etc/containerd/config.tomlsudo systemctl restart containerd

安装成功后,有如下打印

Your Kubernetes control-plane has initialized successfully!

3、用户设置权限(root用户也需要执行)

# master节点执行:

mkdir -p $HOME/.kubecp -i /etc/kubernetes/admin.conf $HOME/.kube/configchown $(id -u):$(id -g) $HOME/.kube/config
4、应用flannel网络
​
sudo kubectl apply -f https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.yml​

查看flannal是否安装成功

sudo kubectl -n kube-system get po -l app=flannel -o wide
5、节点加入

按照在master节点上构建集群后的打印,执行节点加入集群操作

kubeadm join 172.16.1.182:6443 --token g51929.7332yvwdmplcsdam --discovery-token-ca-cert-hash sha256:0af39b256e3c547eada14b72849f1aedbbb1737819d30c20341c225294bbdd81


四、参考资料

1.Centos7安装K8S集群环境-腾讯云开发者社区-腾讯云

2.https://blog.51cto.com/u_1264026/7670666

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

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

相关文章

如何制作一个后台管理页面的路由以及功能实现

后台 文章目录 后台一、RESFUL API二、各模块路由处理1、分类模块1.1、GET /list 分类列表1.2、POST / 新增|编辑分类1.3、DELETE / 删除分类1.4、GET /option 分类选项列表 2、评论模块2.1、GET /list 评论列表2.2、DELETE / 删除评论2.3、PUT /review 修改评论审核 3、留言模…

企业私服中使用Maven,标准的setting.xml文件

Maven Maven是一个项目管理和理解工具。它主要服务于以下几个方面: 构建管理:Maven可用于构建和管理任何基于Java平台的项目。 依赖管理:Maven有一个中央仓库,用于保存大量常用的库文件。当进行项目构建时,Maven会自动下载所需的库文件到本地仓库,这极大地简化了库文件…

Linux基础IO(下)

目录 1. 缓冲区 1.1 定义 1.2 理解缓冲区 1.2.1 为什么要有缓冲区 1.2.2 缓冲区的工作原理 缓冲区什么时候写入&#xff0c;什么时候刷新&#xff1f; 2. 文件系统 2.1 什么是文件系统&#xff1f; 2.2 为什么要有文件系统&#xff1f; 2.3 认识文件的管理结构 2.…

机器学习:深入解析SVM的核心概念(问题与解答篇)【二、对偶问题】

对偶问题 **问题一&#xff1a;什么叫做凸二次优化问题&#xff1f;而且为什么符合凸二次优化问题&#xff1f;**为什么约束条件也是凸的半空间&#xff08;Half-Space&#xff09;凸集&#xff08;Convex Set&#xff09;半空间是凸集的例子SVM 约束定义的半空间总结 **问题二…

Flutter创建自定义的软键盘

参考代码&#xff1a; Flutter - Create Custom Keyboard Examples 本文贴出的代码实现了一个输入十六进制数据的键盘&#xff1a; &#xff08;1&#xff09;支持长按退格键连续删除字符&#xff1b; &#xff08;2&#xff09;可通过退格键删除选中的文字&#xff1b; &…

React 模板选择标准

在决定开发过程中采用哪个React模板时&#xff0c;这确实是一个需要考虑多方面因素的挑战。因为这不仅关乎应用程序的初始构建&#xff0c;更涉及其后续的扩展性、可维护性和整体性能。那么&#xff0c;面对众多现成的模板&#xff0c;我们如何挑选出最适合的解决方案呢&#x…

Spark-机器学习(8)分类学习之随机森林

在之前的文章中&#xff0c;我们学习了分类学习之支持向量机决策树支持向量机&#xff0c;并带来简单案例&#xff0c;学习用法。想了解的朋友可以查看这篇文章。同时&#xff0c;希望我的文章能帮助到你&#xff0c;如果觉得我的文章写的不错&#xff0c;请留下你宝贵的点赞&a…

【论文阅读——基于拍卖的水平联邦学习后付款激励机制设计与声誉和贡献度测量】

1.原文名称 Auction-Based Ex-Post-Payment Incentive Mechanism Design for Horizontal Federated Learning with Reputation and Contribution Measurement 2.本文的贡献 我们提出了一种贡献度测量方法。我们建立了一个声誉系统。声誉易于下降&#xff0c;难以提高。结合声…

第6篇:创建Nios II工程之控制LED<一>

Q&#xff1a;还记得第1篇吗&#xff1f;设计简单的逻辑电路&#xff0c;控制DE2-115开发板上LED的亮与熄灭&#xff0c;一行Verilog HDL的assign赋值语句即可实现。本期开始创建Nios II工程&#xff0c;用C语言代码控制DE2-115开发板上的LED实现流水灯效果。 A&#xff1a;在…

Windows编译OpenCV及扩展模块

OpenCV官网只提供了OpenCV Windows 64位动态库且不包括扩展模块&#xff0c;如果需要32位动态库&#xff0c;或者需要扩展模块的功能&#xff0c;则需要下载源码进行编译。 1. 版本说明与下载地址 OpenCV下载 https://github.com/opencv/opencv/releases/tag/4.9.0 OpenCV扩展模…

企业选择内外网文件摆渡平台的常见三大误区

网络隔离技术现在已经广泛应用于企业安全管理中&#xff0c;企业使用逻辑隔离或物理隔离的方式将网络隔离为内外网进而隔绝外部有害网络攻击&#xff0c;保护内部重要数据资产&#xff0c;但网络隔离后企业仍存在数据交换的需求&#xff0c;此时就需要内外网文件摆渡平台来承担…

学习100个Unity Shader (16) --- 程序纹理简述

文章目录 理解参考 理解 程序纹理顾名思义&#xff0c;就是通过代码生成的纹理&#xff0c;然后传入材质&#xff0c;生成图像。 假设&#xff0c;给一个模型添加了材质&#xff0c;并赋予了一个shader。shader中有一个纹理属性叫_MainTex。 程序纹理简单来说就是&#xff0c;…

Mybatis 实现数据加密

Mybatis 实现数据加密 背景解决方案案例AesEncryptHandler使用 背景 在我们业务开发中会保存一些用户的敏感信息&#xff0c;比如&#xff1a;手机号、银行卡等信息&#xff0c;如果这些信息以明文的方式保存&#xff0c;那么是不安全的。假如&#xff1a;黑客黑进了数据库&am…

Python 点云体积计算(网格积分法)

点云体积计算 一、介绍二、代码示例三、结果展示一、介绍 网格积分法,是一种简单快速的估计点云体积的方法。其核心思想是将三维点云数据映射至二维平面上,随后将平面划分为多个规则格网。在每个格网内,统计点云数据的最高点与最低点之间的垂直距离,即高度差。接着,将高度…

人工智能_大模型044_模型微调004_随机梯度下降优化_常见损失计算算法_手写简单神经网络_实现手写体识别---人工智能工作笔记0179

然后对于,梯度下降,为了让训练的速度更好,更快的下降,又做了很多算法,可以看到 这里要知道Transformer中最常用的Adam 和 AdamW这两种算法. 当然,这些算法都是用于优化神经网络中的参数,以最小化损失函数。下面我会尽量以通俗易懂的方式解释它们的原理和适用场景。 1. **L-…

selenium设置元素隐藏和显示

常见元素隐藏情况 在HTML中&#xff0c;由于页面美化和用户交互的需求&#xff0c;元素隐藏的使用非常常见&#xff0c;比如下拉菜单、内容折叠、对话框以及上传文件框等。隐藏常见有以下几种表现形式&#xff1a; hidden&#xff1a;占据空间&#xff0c;无法点击 style"…

Java成员内部类全解析:从创建、使用到优缺点分析

什么是成员内部类&#xff1f; 在Java的开发中&#xff0c;我们有时会遇到一种特殊的类&#xff0c;它并不像平常的类那样独立存在&#xff0c;而是寄生在另一个类的内部&#xff0c;这就是我们今天要讲的成员内部类。 成员内部类&#xff0c;顾名思义&#xff0c;是作为另一…

自然语言处理 (NLP) 和文本分析

自然语言处理 (NLP) 和文本分析&#xff1a;NLP 在很多领域都有着广泛的应用&#xff0c;如智能助手、语言翻译、舆情分析等。热门问题包括情感分析、命名实体识别、文本生成等。 让我们一起来详细举例子的分析讲解一下自然语言处理&#xff08;NLP&#xff09;和文本分析的应用…

BiLSTM-KDE的双向长短期记忆神经网络结合核密度估计多变量回归区间预测(Matlab)

BiLSTM-KDE的双向长短期记忆神经网络结合核密度估计多变量回归区间预测&#xff08;Matlab&#xff09; 目录 BiLSTM-KDE的双向长短期记忆神经网络结合核密度估计多变量回归区间预测&#xff08;Matlab&#xff09;效果一览基本介绍程序设计参考资料 效果一览 基本介绍 1.BiLS…

windows驱动开发-I/O请求(三)

之前的两篇文章已经将I/O请求的使用说清楚了&#xff0c;接下来试着探索一下I/O请求的其它方面。 I/O请求原理 如果对IRP结构有印象的话&#xff0c;会发现IRP结构中有一个DeviceObject成员以及FileObject成员&#xff0c;这里已经隐含了IRP是如何传递的。 在DriverEntry中&…