k8s安装

K8s 安装教程 v1.24

第一步前置环境调试
第一步确定自己的内核版本高于3
uname -sr

第二步:使用elrepo源升级内核检查发现当前内核版本是3.10,
使用elrepo源升级内核
配置elrepo源,执行如下命令
rpm --import https://www.elrepo.org/RPM-GPG-KEY-elrepo.org
yum install https://www.elrepo.org/elrepo-release-7.el7.elrepo.noarch.rpm -y

查看最新版内核
执行如下命令查看最新的内核版本
yum --disablerepo=“*” --enablerepo=“elrepo-kernel” list available

安装最新的内核版本
执行如下命令安装主线版本:
yum --enablerepo=elrepo-kernel install kernel-ml -y

设置系统默认内核
查看系统上的所有内核版本:
grub2-mkconfig -o /boot/grub2/grub.cfg
awk -F’ ‘$1=="menuentry " {print i++ " : " $2}’ /etc/grub2.cfg

设置默认内核为我们刚才升级的内核版本
cp /etc/default/grub /etc/default/grub-bak #备份
grub2-set-default 0 #设置默认内核版本
vi /etc/default/grub
GRUB_DEFAULT=saved修改为GRUB_DEFAULT=0

重新创建内核配置
grub2-mkconfig -o /boot/grub2/grub.cfg

查看默认内核
grubby --default-kernel
grub2-editenv list

更新软件包并重启
yum makecache
reboot

第二步 安装containerd
1.安装依赖

yum install -y yum-utils device-mapper-persistent-data lvm2

2.添加yum源

yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

3.安装containerd

yum install containerd -y

4.生成配置文件

containerd config default > /etc/containerd/config.toml

5.替换 containerd 默认的 sand_box 镜像,编辑 /etc/containerd/config.toml

sandbox_image = “registry.aliyuncs.com/google_containers/pause:3.2”

6.启动服务

systemctl restart containerd && systemctl enable containerd

第三步安装K8S
后面总结部分有快捷安装方式
修改主机名
hostnamectl set-hostname master
#注意每个节点的名字要不一样

总结 :快捷前置环境配置
#!/bin/bash

关闭防火墙

systemctl stop firewalld &&
systemctl disable firewalld && \

关闭 selinux

永久关闭(重启生效)

sed -i ‘s/enforcing/disabled/’ /etc/selinux/config && \

临时关闭(即刻生效)

setenforce 0 && \

关闭swap(k8s禁止虚拟内存以提高性能)

永久关闭(重启生效)

sed -ri ‘s/.swap./#&/’ /etc/fstab && \

临时关闭(即刻生效)

swapoff -a && \

在master添加hosts

cat >> /etc/hosts << EOF
192.168.65.180 k8s-master
192.168.65.38 k8s-node1
192.168.65.195 k8s-node2
EOF

cat <<EOF | sudo tee /etc/modules-load.d/k8s.conf
overlay
br_netfilter
EOF

modprobe overlay
modprobe br_netfilter

设置所需的 sysctl 参数,参数在重新启动后保持不变

cat <<EOF | sudo tee /etc/sysctl.d/k8s.conf
net.bridge.bridge-nf-call-iptables = 1
net.bridge.bridge-nf-call-ip6tables = 1
net.ipv4.ip_forward = 1
EOF

网桥生效

sysctl --system && \

时间同步

yum install ntpdate -y &&
ntpdate time.windows.com

上述是所有节点需要做的内容
下面是主节点的内容:
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=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

安装k8s
yum install kubelet-1.24.3 kubeadm-1.24.3 kubectl-1.24.3 -y

启动k8s

systemctl enable kubelet.service

初始化主节点
kubeadm init --apiserver-advertise-address=192.168.65.180 --kubernetes-version v1.24.3 --service-cidr=10.96.0.0/12 --pod-network-cidr=10.244.0.0/16 --image-repository registry.cn-hangzhou.aliyuncs.com/google_containers

kubeadm init成功后出现下面内容
Your Kubernetes control-plane has initialized successfully!

To start using your cluster, you need to run the following as a regular user:

mkdir -p $HOME/.kube
sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
sudo chown ( i d − u ) : (id -u): (idu):(id -g) $HOME/.kube/config

Alternatively, if you are the root user, you can run:

export KUBECONFIG=/etc/kubernetes/admin.conf

You should now deploy a pod network to the cluster.
Run “kubectl apply -f [podnetwork].yaml” with one of the options listed at:
https://kubernetes.io/docs/concepts/cluster-administration/addons/

Then you can join any number of worker nodes by running the following on each as root:

kubeadm join 192.168.65.180:6443 --token 98wkpb.mz5qekplhqfbgfo3
–discovery-token-ca-cert-hash sha256:aa426a445ac902c74cf124520571168eb406b19c08ddfdc1bf90fe66918d3fdd

初始化网络
curl -O https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.yml && kubectl apply -f kube-flannel.yml

sed -i ‘s/quay.io/quay-mirror.qiniu.com/g’ kube-flannel.yml

查看pod情况
kubectl get pod -A
#查看节点情况
kubectl get nodes

常见问题
The kubelet is unhealthy due to a misconfiguration of the node in some way (required cgroups disabled)
在 CentOS 7 上,默认情况下 cgroups 是启用的,但如果进行了某些配置更改,可能会导致其被禁用。
您可以通过编辑 kubelet 的配置文件 /etc/kubernetes/kubelet 来检查 cgroups 的配置:
vi /etc/kubernetes/kubelet
#修改为合适的 cgroup 驱动程序
KUBELET_EXTRA_ARGS=–cgroup-driver=systemd

保存文件后,重新启动 kubelet 服务:
systemctl restart kubelet

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

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

相关文章

科普:敏捷估算为什么用斐波那契数列

被一个同学问&#xff1a;敏捷估算为什么用斐波那契数列&#xff1f;有什么意义&#xff1f; 简单说说我自己的简介&#xff1a; 敏捷开发中使用斐波那契数列来估算的原因是&#xff0c;斐波那契数列可以用于估算任务的难度级别&#xff0c;并帮助团队预测完成任务所需的时间…

MySQL所有常见问题

一、事务 定义:一组操作要么全部成功,要么全部失败,目的是为了保证数据最终的一致性 在MySQL中,提供了一系列事务相关的命令: start transaction | begin | begin work:开启一个事务commit:提交一个事务rollback:回滚一个事务事务的ACID 原子性(Atomicity):当前事…

ubuntu设置显示应用程序

按住win键&#xff0c;可以搜索到想要的应用程序 或者是点击屏幕左下角的9个点图标&#xff0c;在应用程序列表中能看到这个的程序 设置android studio 在/usr/share/applications目录里&#xff0c;创建文件android-studio.desktop&#xff0c;内容如下&#xff1a; [Desk…

AI人工智能技术发现了拉斐尔名画背后的秘密:这幅画并非完全由大师本人完成

最近&#xff0c;一个先进的人工智能神经网络在拉斐尔的名画中发现了一个不寻常的地方&#xff1a;其中的一副面孔并非由拉斐尔本人绘制&#xff0c;而是出自其他艺术家之手。 详细文章网址链接&#xff1a;Deep transfer learning for visual analysis and attribution of pai…

负载均衡概述

负载均衡 负载均衡 建立在现有网络结构之上&#xff0c;它提供了一种廉价有效透明的方法扩展网络设备和服务器的带宽、增加吞吐量、加强网络数据处理能力、提高网络的灵活性和可用性。 四层负载均衡 vs 七层负载均衡 四层负载均衡&#xff08;目标地址和端口交换&#xff09;…

[C#]使用ONNXRuntime部署一种用于边缘检测的轻量级密集卷积神经网络LDC

源码地址&#xff1a; github.com/xavysp/LDC LDC: Lightweight Dense CNN for Edge Detection算法介绍&#xff1a; 由于深度学习方法的快速发展&#xff0c;近年来&#xff0c;用于执行图像边缘检测的卷积神经网络&#xff08;CNN&#xff09;模型爆炸性地传播。但边缘检测…

【42页动态规划学习笔记分享】动态规划核心原理详解及27道LeetCode相关经典题目汇总

《博主简介》 小伙伴们好&#xff0c;我是阿旭。专注于人工智能AI、python、计算机视觉相关分享研究。 ✌更多学习资源&#xff0c;可关注公-仲-hao:【阿旭算法与机器学习】&#xff0c;共同学习交流~ &#x1f44d;感谢小伙伴们点赞、关注&#xff01; 《------往期经典推荐--…

10 标准库的硬件I2C驱动mpu6050模块

阅读引言&#xff1a;本文只是给大家分享硬件I2C读取mpu6050加速度&#xff0c; 角速度&#xff0c; 温度的代码。 #ifndef __MPU6050_H #define __MPU6050_Hvoid MPU6050_WriteReg(uint8_t RegAddress, uint8_t Data); uint8_t MPU6050_ReadReg(uint8_t RegAddress);void MPU6…

计算机视觉工程师就业前景如何

计算机视觉主要涵盖了图像处理、模式识别等多个领域&#xff0c;可以应用到很多行业中。随着人工智能技术的快速发展&#xff0c;计算机视觉作为其中的重要分支之一&#xff0c;其就业前景非常广阔。 为进一步贯彻落实中共中央印发《关于深化人才发展体制机制改革的意见》和国…

Sensor Demosaic IP 手册PG286笔记

《 UG1449 Multimedia User Guide》中包含了大量的多媒体IP简介。 本IP 用于对bayer RGB&#xff08;每个pixel只有单个R/G/B&#xff09;做去马赛克处理&#xff0c;恢复成每个pixel点都有完整的RGB值。通过axi接口配置IP内部erg。 1、算法手册中的描述 提到了几种插值算法&…

MySQL基础笔记(1)基础理论

一.基本概念 DB&#xff1a;数据库&#xff0c;存储数据的仓库&#xff0c;数据是有组织地进行存储DBMS&#xff1a;操纵和管理数据库的大型软件 SQL&#xff1a;结构化查询语言&#xff0c;操作关系型数据库的编程语言&#xff0c;定义了一套操作关系型数据库的统一标准 &…

ref和reactive的区别

理解&#xff1a; 1.ref是定义简单类型 和单一的对象 2.reactive 定义复杂的类型 梳理文档&#xff1a; ref和reactive都是Vue.js 3.x版本中新增的响应式API&#xff0c;用于实现组件的数据响应式更新。它们的主要区别如下&#xff1a; 1. 数据类型不同&#xff1a;ref用于包…

React 18 新增的钩子函数

React 18 引入了一些新的钩子函数&#xff0c;用于处理一些常见的场景和问题。以下是 React 18 中引入的一些新钩子函数以及它们的代码示例和使用场景&#xff1a; useTransition&#xff1a; 代码示例&#xff1a;import { useTransition } from react;function MyComponent()…

关于Python里xlwings库对Excel表格的操作(二十四)

这篇小笔记主要记录如何【如何使用xlwings库中的“api”类设置单元格边界线型、粗细、颜色】。前面的小笔记已整理成目录&#xff0c;可点链接去目录寻找所需更方便。 【目录部分内容如下】【点击此处可进入目录】 &#xff08;1&#xff09;如何安装导入xlwings库&#xff1b;…

消息队列中间件的简述以及比较

文章目录 引言一、RabbitMQ的简单介绍二、ActiveMQ的简单介绍三、RocketMQ的简单介绍四、Kafka的简单介绍五、各个中间件对比总结参考文档 引言 上文简单讲述了何为消息队列和消息队列的特点&#xff08;优点&#xff09;&#xff0c;本文为大家介绍一下各个消息队列中间件的特…

C++的面向对象学习(9):文件操作

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 文章目录 一、类的封装的多文件实现回顾二、文件操作1.对文件进行操作需要头文件<fstream>2.操作文件的三大类方法&#xff1a;读、写、读写 三、实现文本文件的读、写…

《2023年企业IoT和OT威胁报告》:物联网恶意软件攻击增长400%

内容概括&#xff1a; 物联网&#xff08;IoT&#xff09;设备无疑改变了我们生活、工作和管理运营技术&#xff08;OT&#xff09;环境的方式。总体而言&#xff0c;到2027年&#xff0c;全球物联网设备数量预计将超过290亿&#xff0c;比2023年的167亿大幅增加。设备和智能技…

SiteGround 注册无法接收短信验证码问题的解决方法

在购买SiteGround后&#xff0c;有时会出现需要进行账号验证的情况&#xff0c;要求通过短信或电话完成验证。然而&#xff0c;有些用户无论如何操作都无法收到短信验证码。以下是解决这个问题并成功完成服务器购买的方法。 Thank You for Your Purchase! Lets Verify Your Ord…

虚拟专线网络(IP-VPN)

虚拟专线网络(IP-VPN)&#xff0c;因为它的安全性和可靠性。通过亚洲领先的 IP VPN 提供商。享受更高的可管理性和可扩展性&#xff0c;在多个站点之间交付 IP 流量或数据包&#xff0c;拥有亚太地区最大的 IP 骨干网。 1&#xff0c;保证正常运行时间&#xff0c;在网络链路发…

C++数据结构-栈

目录 栈顺序栈链栈 栈 栈是允许在表的一端进行插入和删除的线性表。表中允许插入删除的一端是栈顶&#xff0c;栈顶的当前位置是动态变化的&#xff1b;不允许插入和删除的一端是栈底&#xff0c;栈底的位置是不变的。当表中没有元素时称为空栈&#xff0c;插入数据的运算称为…