同一云厂商同一内网云服务器中使用CentOS 7.6安装Kubernetes集群

news2024/12/24 20:45:50

查看Linux发行版版本号

cat /etc/redhat-release查看版本号。
在这里插入图片描述

更改yum源

参考我写的博客。

主节点操作系统参数配置和软件安装

cat >> /etc/hosts <<OFF,将你的两台云服务器的内网IP和对应的主机名写到/etc/hosts
在这里插入图片描述
需要修改“/etc/fstab”,关闭 Linux 的 swap 分区

swapoff -a
sed -i 's/.*swap.*/#&/' /etc/fstab

在这里插入图片描述

禁用 SELinux

setenforce 0
sed -i "s/^SELINUX=enforcing/SELINUX=disabled/g" /etc/sysconfig/selinux 
sed -i "s/^SELINUX=enforcing/SELINUX=disabled/g" /etc/selinux/config 
sed -i "s/^SELINUX=permissive/SELINUX=disabled/g" /etc/sysconfig/selinux 
sed -i "s/^SELINUX=permissive/SELINUX=disabled/g" /etc/selinux/config

在这里插入图片描述

使用cat >>/etc/sysctl.d/k8s.conf<< OFF创建k8s.conf文件,这是ipV4和ip V6进行转发的设置,输入下边的内容,每输入一行按一下回车键,最后输入“OFF”:

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

在这里插入图片描述

执行如下命令使修改生效:

modprobe br_netfilter
sysctl -p /etc/sysctl.d/k8s.conf

在这里插入图片描述
加载 ipvs 模块

modprobe -- ip_vs
modprobe -- ip_vs_rr
modprobe -- ip_vs_wrr
modprobe -- ip_vs_sh
modprobe -- nf_conntrack_ipv4

在这里插入图片描述

lsmod是list modules的缩写,即列出所有模块。可以使用下边的命令:

lsmod | grep ip_vs
lsmod | grep nf_conntrack_ipv4

查看一下情况。
在这里插入图片描述

yum install -y ipvsadm ipset安装ipvsadm和ipset。
在这里插入图片描述

主节点安装Docker

yum install -y yum-utils device-mapper-persistent-data lvm2安装必要的软件。
在这里插入图片描述
设置 stable 镜像 aliyun 仓库

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

在这里插入图片描述
yum makecache fast更新 yum 软件包索引
在这里插入图片描述
yum list docker-ce.x86_64 --showduplicates |sort -r从高到低列出 Docker-ce 的版本
在这里插入图片描述
yum install docker-ce-20.10.8 docker-ce-cli-20.10.8 containerd.io-1.4.10 -y –-allowerasing安装Docker 20.10.8和containerd。
在这里插入图片描述
最后显示“Complete!”就是安装完成。
在这里插入图片描述

systemctl start docker 启动docker。
systemctl status docker看一下docker状态。
在这里插入图片描述
systemctl enable docker --now设置开机启动docker并且现在启动docker。
在这里插入图片描述

设置 Docker 镜像加速器,修改 docker 配置以适应 kubelet
vim /etc/docker/daemon.json,把下边的内容添加进去:

{
 "registry-mirrors": ["https://registry.cn-hangzhou.aliyuncs.com"],
 "exec-opts": ["native.cgroupdriver=systemd"]
}

在这里插入图片描述

systemctl daemon-reload重新加载服务的配置文件。
systemctl restart docker重新启动docker。
在这里插入图片描述

主节点安装kubeadm、kubelet、kubectl

添加软件源信息,可以参考https://developer.aliyun.com/mirror/kubernetes。
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

在这里插入图片描述
yum makecache fast更新 yum 软件包索引。

在这里插入图片描述
yum list kubeadm --showduplicates |sort -r把kubeadm版本展示出来。
在这里插入图片描述
yum install kubeadm-1.23.3 kubelet-1.23.3 kubectl-1.23.3 -y使用版本限制安装kubeadm、kubelet、kubectl。
在这里插入图片描述

最后显示“Complete!”安装完成。
在这里插入图片描述

kubectl version显示版本。
在这里插入图片描述
systemctl daemon-reload重新加载服务的配置文件。
systemctl start kubelet.service重新启动kubelet服务。
systemctl status kubelet.service查看一下kubelet服务状态。
在这里插入图片描述
发现没有启动,journalctl -u kubelet --no-pager查看日志查找原因
发现报错如下:

Failed to load kubelet config file" err="failed to load Kubelet config file /var/lib/kubelet/config.yaml, error failed to read kubelet config file \"/var/lib/kubelet/config.yaml\", error: open /var/lib/kubelet/config.yaml: no such file or directory" path="/var/lib/kubelet/config.yaml

在这里插入图片描述
ifconfig看一下当前网卡信息,我下边会选择172.31.0.180这个网卡。
在这里插入图片描述

pod-network-cidr:设置集群里 Pod 的 IP 地址段。
apiserver-advertise-address:设置 apiserver 的 IP 地址,对于多网卡服务器来说很重要(比如 VirtualBox 虚拟机就用了两块网卡),可以指定 apiserver 在哪个网卡上对外提供服务。
kubernetes-version:指定 Kubernetes 的版本号。
image-repository:用来设置镜像。
service-cid:设置k8s的service的虚拟ip网段
接下来使用kubeadm init --image-repository registry.aliyuncs.com/google_containers --kubernetes-version=v1.23.3 --pod-network-cidr=10.10.0.0/16 --service-cidr=10.20.0.0/16 --apiserver-advertise-address=172.31.0.180启动。
在这里插入图片描述

显示kubeadm join开头的字符串就是执行成功了。
在这里插入图片描述

systemctl start kubelet.service再次重新启动kubelet服务,systemctl status kubelet.service查看一下kubelet服务状态,发现启动成功了。
在这里插入图片描述

mkdir -p $HOME/.kube # 新建目录
sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config # 将admin.conf拷贝成config
sudo chown $(id -u):$(id -g) $HOME/.kube/config # 添加用户组

在这里插入图片描述

kubectl get pod -A查看所有的pod。
在这里插入图片描述
发现有Pending状态的pod,一会之后,再执行kubectl get pod -A查看所有的pod,发现状态已经变为Running。
在这里插入图片描述
kubectl get node看一下节点信息。
在这里插入图片描述

打开安全组

在天翼云服务器安全组中,把6443、10250、10251、10252和10259这几个端口出入方向都打开。需要开放的端口参考网址:https://blog.csdn.net/lkmtao/article/details/129674996
在这里插入图片描述
点击“安全组”。
在这里插入图片描述

点击“>”。
在这里插入图片描述

点击“添加规则”。

在这里插入图片描述

选择方向,填写端口,最后点击确定。
在这里插入图片描述

主节点安装网络组件

wget https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.yml下载kube-flannel.yml。
在这里插入图片描述

vim /root/kube-flannel.yml,将Network的值改为“10.10.0.0/16”。
在这里插入图片描述

kubectl apply -f kube-flannel.yml部署flannel。
在这里插入图片描述

从节点操作系统参数配置和软件安装

cat >> /etc/hosts <<OFF,将你的两台云服务器的内网IP和对应的主机名写到/etc/hosts
在这里插入图片描述
需要修改“/etc/fstab”,关闭 Linux 的 swap 分区

swapoff -a
sed -i 's/.*swap.*/#&/' /etc/fstab

在这里插入图片描述

禁用 SELinux

setenforce 0
sed -i "s/^SELINUX=enforcing/SELINUX=disabled/g" /etc/sysconfig/selinux 
sed -i "s/^SELINUX=enforcing/SELINUX=disabled/g" /etc/selinux/config 
sed -i "s/^SELINUX=permissive/SELINUX=disabled/g" /etc/sysconfig/selinux 
sed -i "s/^SELINUX=permissive/SELINUX=disabled/g" /etc/selinux/config

在这里插入图片描述

使用cat >>/etc/sysctl.d/k8s.conf<< OFF创建k8s.conf文件,这是ipV4和ip V6进行转发的设置,输入下边的内容,每输入一行按一下回车键,最后输入“OFF”:

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

在这里插入图片描述

执行如下命令使修改生效:

modprobe br_netfilter
sysctl -p /etc/sysctl.d/k8s.conf

在这里插入图片描述

加载 ipvs 模块

modprobe -- ip_vs
modprobe -- ip_vs_rr
modprobe -- ip_vs_wrr
modprobe -- ip_vs_sh
modprobe -- nf_conntrack_ipv4

在这里插入图片描述

lsmod是list modules的缩写,即列出所有模块。可以使用下边的命令:

lsmod | grep ip_vs
lsmod | grep nf_conntrack_ipv4

查看一下情况。
在这里插入图片描述

yum install -y ipvsadm ipset安装ipvsadm和ipset。
在这里插入图片描述

从节点安装Docker

参考我写的博客更改yum源。
yum install -y yum-utils device-mapper-persistent-data lvm2安装必要的软件。
在这里插入图片描述

设置 stable 镜像 aliyun 仓库

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

在这里插入图片描述

yum makecache fast更新 yum 软件包索引
在这里插入图片描述

yum install docker-ce-20.10.8 docker-ce-cli-20.10.8 containerd.io-1.4.10 -y –-allowerasing安装Docker 20.10.8和containerd。
在这里插入图片描述

最后显示“Complete!”就是安装完成。
在这里插入图片描述

systemctl start docker 启动docker。
systemctl status docker看一下docker状态。
在这里插入图片描述

systemctl enable docker --now设置开机启动docker并且现在启动docker。

在这里插入图片描述

设置 Docker 镜像加速器,修改 docker 配置以适应 kubelet
vim /etc/docker/daemon.json,把下边的内容添加进去:

{
 "registry-mirrors": ["https://registry.cn-hangzhou.aliyuncs.com"],
 "exec-opts": ["native.cgroupdriver=systemd"]
}

在这里插入图片描述

systemctl daemon-reload重新加载服务的配置文件。
systemctl restart docker重新启动docker。
systemctl status docker看一下状态。
在这里插入图片描述

从节点安装kubeadm、kubelet、kubectl

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

在这里插入图片描述

yum makecache fast更新 yum 软件包索引。
在这里插入图片描述

yum install kubeadm-1.23.3 kubelet-1.23.3 kubectl-1.23.3 -y使用版本限制安装kubeadm、kubelet、kubectl。
在这里插入图片描述

最后显示“Complete!”安装完成。
在这里插入图片描述

从节点连接主节点

kubeadm join 172.31.0.180:6443 --token 5wrhsh.y7wduklce0cmhqux --discovery-token-ca-cert-hash sha256:06cf619fce6daf2adab2186cb8914a678153aac9769e98a6c3e8c8fdedcb1949

在这里插入图片描述

在主节点上使用kubectl get nodes测试一下,若是显示两个节点,而STATUS都是Ready,那么就是好了。
在这里插入图片描述

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

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

相关文章

Redis监控步骤get!Google精髓的四大法则直接掌握

Redis也是对外服务&#xff0c;所以Google四个黄金指标同样适用&#xff0c;还从延迟、流量、错误、饱和度分析Redis关键指标。 1 延迟 选择Redis是想得到更快响应速度和更高吞吐量&#xff0c;所以延迟数据对使用Redis的应用程序至关重要。 1.1 如何监控延迟 ① 客户端应用…

C++基础——运算符详解

详解运算符 初识运算符位运算认识位运算的相关运算符。能实现什么样的操作&#xff1f;及实现原理。 比较运算符逻辑运算符赋值运算符 初识运算符 运算符分为5大类&#xff1a;算数运算符、赋值运算符、复合赋值运算符、比较运算符、逻辑运算符。算数运算符就是加减乘除运算&a…

bytetrack 多目标跟踪 学习笔记

效果&#xff1a; ByteTrack在遮挡情况下ID不丢失演示 最近几天在看Bytetrack,感觉自己的学习方法有点问题, 应该先断点跑通&#xff0c;总体把握 然后完全理解算法代码的每一行,可以自己复现(这个就很难,看github的大佬把python转C 好羡慕) 所以如果学习Bytetrack,需要: 了…

【Git】Git(分布式项目管理工具)在Windows本地/命令行中的基本操作以及在gitee中的操作,使用命令行、图形化界面,进行提交,同步,克隆

介绍 这里是小编成长之路的历程&#xff0c;也是小编的学习之路。希望和各位大佬们一起成长&#xff01; 以下为小编最喜欢的两句话&#xff1a; 要有最朴素的生活和最遥远的梦想&#xff0c;即使明天天寒地冻&#xff0c;山高水远&#xff0c;路远马亡。 一个人为什么要努力&a…

菜鸡shader:L1基于兰伯特原理的玉石、条纹、点阵材质

目录 玉石材质条纹材质点阵效果 这里就简单说下原理吧&#xff0c;使用unity很久之前的一个插件shaderforge&#xff0c;最近几年好像在unity资源商店已经不再维护了&#xff0c;但是有shader forge的官网&#xff1a;在这&#xff0c;碰到节点不会的时候可以查一下官方文档&am…

手把手,带你发布你的第一个npm包

我们在编写项目的时候&#xff0c;都会引入很多很好用的工具包&#xff0c;例如VueX、axios、Router、Element UId等。这些包很好用&#xff0c;安装引入也很方便。那如果我们也想发布一个我们自己的工具包&#xff0c;在以后编写项目时&#xff0c;直接引入我们自己的工具包要…

干货 | 正确引用参考文献的6大技巧

Hello&#xff0c;大家好&#xff01; 这里是壹脑云科研圈&#xff0c;我是喵君姐姐&#xff5e; 对于学术研究而言&#xff0c;正确引用参考文献非常重要。参考文献不仅展现了自己的学术水平&#xff0c;同时也给研究定位&#xff0c;突显研究在前人研究基础上作出的贡献。 …

牛客_华为_HJ32 密码截取

HJ32 密码截取 647. 回文子串 516.最长回文子序列 ## 这不就是 最长回文子串&#xff01;&#xff01; ## 回文子串有两种模式 ## ABA ##CAACst input() n len(st) ## 双指针 def func(s,i,j,n):res 0while i>0 and j<n and s[i]s[j]:i-1j1return j-i-1 ## 由于i j…

五本计算机必读书籍总结

一、计算机组成原理 思维导图&#xff1a; 1、计算机系统概述 主要讲授信息的数字化表示、存储程序与冯诺依曼体制&#xff1b;计算机的诞生和发展&#xff1b;计算机系统的层次结构和硬件系统组织&#xff1b;计算机的主要性能指标。 2、数据的表示、运算与校验 主要讲授数值…

C语言中链表中经典面试题

&#x1f436;博主主页&#xff1a;ᰔᩚ. 一怀明月ꦿ ❤️‍&#x1f525;专栏系列&#xff1a;线性代数&#xff0c;C初学者入门训练&#xff0c;题解C&#xff0c;C的使用文章&#xff0c;「初学」C &#x1f525;座右铭&#xff1a;“不要等到什么都没有了&#xff0c;才下…

扩展 VirtualBox 已分配磁盘的方法

扩展 VirtualBox 已分配磁盘的方法 第一步&#xff1a;用VirtualBox命令行调整已分配磁盘的大小第二步&#xff1a;用windows磁盘管理工具扩展磁盘空间 第一步&#xff1a;用VirtualBox命令行调整已分配磁盘的大小 "c:\Program Files\Oracle\VirtualBox\VBoxManage.exe&q…

3年经验程序员聊聊外包项目,总结了6个典型的问题该如何解决

我是一名老程序员&#xff0c;接了项目&#xff0c;接外包项目已经有3年多的经验了。今天我想分享一些接项目的经验给大家。 第一&#xff0c;辞职去接外包&#xff0c;好吗&#xff1f;有很多人幻想辞职了全职去接外包&#xff0c;但我并不太建议这样做。我建议大家先把自己的…

计算机基础必读书籍

一、计算机组成原理 思维导图&#xff1a; 1、计算机系统概述 主要讲授信息的数字化表示、存储程序与冯诺依曼体制&#xff1b;计算机的诞生和发展&#xff1b;计算机系统的层次结构和硬件系统组织&#xff1b;计算机的主要性能指标。 2、数据的表示、运算与校验 主要讲授数值…

一个go http和grpc客户端库

大家好&#xff0c;我是peachesTao&#xff0c;今天是五一假期的第4天&#xff0c;首先祝大家劳动节快乐。今天给大家推荐一个统一http和grpc客户端调用的库&#xff0c;名为prpc&#xff0c;github地址&#xff1a;prpc&#xff0c;该库是我公司根据最佳实践总结开发出来的&am…

【C++进阶之路】类和对象(上)

文章目录 一.面向对象和面向过程二.类的引入——结构体三.类的定义1.类定义的两种方式在类里面定义函数在类外定义函数——类域 2.访问限定符3.封装——面向对象的三大特性4.类的实例化 四.类对象模型求一个类的大小 五.this指针基本认识代码解读 一.面向对象和面向过程 面向对…

【移动端网页布局】流式布局案例 ③ ( 实现搜索栏功能 | 伪元素选择器 | 子绝父相 | 外边距塌陷处理 | 二倍精灵图处理方案 )

文章目录 一、搜索栏样式及核心要点1、实现效果2、自动伸缩搜索栏实现3、搜索栏父容器设置4、搜索栏左右两侧的按钮盒子5、搜索栏盒子6、二倍精灵图处理方案 二、完整代码示例1、HTML 标签结构2、CSS 样式3、展示效果 一、搜索栏样式及核心要点 1、实现效果 上一篇博客中 , 完成…

2022年职业教育技能大赛网络安全 linux系统渗透提权

B-10&#xff1a;Linux 系统渗透提权 任务环境说明&#xff1a; ✓ 服务器场景&#xff1a;Server2202&#xff08;关闭链接&#xff09; ✓ 用户名&#xff1a;hacker 密码&#xff1a;123456 使用渗透机对服务器信息收集&#xff0c;并将服务器中 SSH 服务端口号作为 flag…

API 接口自动化测试的基本原理及实战教程

目录 常用API接口协议介绍 Http协议接口请求的介绍 HTTPS协议 SMTP协议 SNMP协议 FTP协议 API 接口自动化测试的基本原理 常用API接口协议介绍 HTTP协议 超文本传输协议 它是用来在Internet上传送超文本的传送协议&#xff0c;运行在TCP/IP协议族之上&#xff0c;它可…

Docker file镜像

目录 一、Docker镜像的创建 1、基于现有镜像创建 2、基于本地模版创建 3、基于Dockerfile创建 1、联合文件系统&#xff08;UnionFS&#xff09; ​编辑2、镜像加载原理 3、Dockerfile 4、Docker 镜像结构的分层 二、Dockerfile 操作常用的指令 &#xff08;1&#xf…

把树莓派改造成NAT软路由器

本文目录 1、查看网卡情况2、配置静态ip3、配置IP转发和SNAT功能3.1、开启Linux的报文转发功能 3.2、开启SNAT功能4、进阶配置4.1、如果WAN口(上行接口)eth0是动态分配的IP地址4.2、在LAN口上&#xff0c;给下游主机开启自动分配IP地址功能4.3、永久保存iptables, SNAT配置&…