Ubuntu上安装部署k8s集群

news2024/11/25 18:34:08

Ubuntu上安装部署k8s集群

  • 一、基础环境准备
    • (一)环境说明
      • 1.主机说明
    • (二)环境操作
      • 1. 设置Master与工作节点的机器名称及配置
      • 2. 解析主机
      • 3. 写入以下内容(注意IP地址和主机名换成自己的):
      • 4. 虚拟内存swap分区关闭
      • 5. 开启防火墙的端口
      • 6. 开启IPv4转发
      • 7. 设置时间同步
      • 8. 在各个主机中安装 docker软件
      • 9. 安装 cri-dockerd 组件
      • 10. 安装Kubernetes
  • 二、单实例K8s集群部署
    • (一)Master节点初始化
      • 1. 查看初始化需要的镜像
      • 2. 拉取镜像
      • 3. 初始化节点
      • 4. 配置环境变量
      • 5. 切换普通模式
    • (二)安装网络插件flannel
    • (三)Node节点,加入集群

一、基础环境准备

(一)环境说明

ubutun 20.04 TLS
kubernetes: v1.25.0

  • kubectl v1.25.0
  • kubeadm v1.25.0
  • kubelet v1.25.0
    Docker:20.10.21

1.主机说明

#master
master-100 192.168.16.100

#worker
worker-200 192.168.16.200

(二)环境操作

Tips:所有主机都需要进行以下操作

1. 设置Master与工作节点的机器名称及配置

#IP地址和主机名称修改

hostname $hostname
sudo hostnamectl set-hostname master-100

2. 解析主机

sudo gedit /etc/hosts

3. 写入以下内容(注意IP地址和主机名换成自己的):

192.168.16.100 master-100
192.168.16.200 node-200

4. 虚拟内存swap分区关闭

sudo swapoff -a && sudo sed -i 's/^\/swap.img\(.*\)$/#\/swap.img \1/g' /etc/fstab && free

在这里插入图片描述

5. 开启防火墙的端口

很多教程是直接关闭防火墙,事实上,关闭防火墙会在kubeadm过程中出现超时现象。

sudo ufw enable
sudo ufw allow 6443
sudo ufw status

重启主机。。。重启后注意查看swap是否关闭。。。

6. 开启IPv4转发

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

modprobe overlay
modprobe br_netfilter

sudo 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

sudo sysctl --system

7. 设置时间同步

sudo apt install -y chrony
sudo systemctl restart chrony
sudo systemctl status chrony
chronyc sources

8. 在各个主机中安装 docker软件

(1)卸载旧版本

sudo apt-get remove docker docker-engine docker.io containerd runc

(2)更新apt包索引并安装包以允许apt在HTTPS上使用存储库

sudo apt-get install -y \
  apt-transport-https \
  ca-certificates \
curl \
  gnupg-agent \
  software-properties-common

(3)添加Docker官方GPG密钥 # -fsSL

curl https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -

(4)设置稳定存储库

sudo add-apt-repository \
"deb [arch=amd64] https://download.docker.com/linux/ubuntu \
$(lsb_release -cs) \
  stable"

(5)安装特定版本的Docker引擎,请在repo中列出可用的版本

apt-cache madison docker-ce
 docker-ce | 5:20.10.21~3-0~ubuntu-focal | https://download.docker.com/linux/ubuntu focal/stable amd64 Packages
 docker-ce | 5:20.10.20~3-0~ubuntu-focal | https://download.docker.com/linux/ubuntu focal/stable amd64 Packages
 docker-ce | 5:20.10.19~3-0~ubuntu-focal | https://download.docker.com/linux/ubuntu focal/stable amd64 Packages
 docker-ce | 5:20.10.18~3-0~ubuntu-focal | https://download.docker.com/linux/ubuntu focal/stable amd64 Packages
 docker-ce | 5:20.10.17~3-0~ubuntu-focal | https://download.docker.com/linux/ubuntu focal/stable amd64 Packages
 docker-ce | 5:20.10.16~3-0~ubuntu-focal | https://download.docker.com/linux/ubuntu focal/stable amd64 Packages
 docker-ce | 5:20.10.15~3-0~ubuntu-focal | https://download.docker.com/linux/ubuntu focal/stable amd64 Packages
 docker-ce | 5:20.10.14~3-0~ubuntu-focal | https://download.docker.com/linux/ubuntu focal/stable amd64 Packages
 docker-ce | 5:20.10.13~3-0~ubuntu-focal | https://download.docker.com/linux/ubuntu focal/stable amd64 Packages
 docker-ce | 5:20.10.12~3-0~ubuntu-focal | https://download.docker.com/linux/ubuntu focal/stable amd64 Packages
 docker-ce | 5:20.10.11~3-0~ubuntu-focal | https://download.docker.com/linux/ubuntu focal/stable amd64 Packages
 docker-ce | 5:20.10.10~3-0~ubuntu-focal | https://download.docker.com/linux/ubuntu focal/stable amd64 Packages
 docker-ce | 5:20.10.9~3-0~ubuntu-focal | https://download.docker.com/linux/ubuntu focal/stable amd64 Packages
 docker-ce | 5:20.10.8~3-0~ubuntu-focal | https://download.docker.com/linux/ubuntu focal/stable amd64 Packages
 docker-ce | 5:20.10.7~3-0~ubuntu-focal | https://download.docker.com/linux/ubuntu focal/stable amd64 Packages
 docker-ce | 5:20.10.6~3-0~ubuntu-focal | https://download.docker.com/linux/ubuntu focal/stable amd64 Packages
 docker-ce | 5:20.10.5~3-0~ubuntu-focal | https://download.docker.com/linux/ubuntu focal/stable amd64 Packages
 docker-ce | 5:20.10.4~3-0~ubuntu-focal | https://download.docker.com/linux/ubuntu focal/stable amd64 Packages
 docker-ce | 5:20.10.3~3-0~ubuntu-focal | https://download.docker.com/linux/ubuntu focal/stable amd64 Packages
 docker-ce | 5:20.10.2~3-0~ubuntu-focal | https://download.docker.com/linux/ubuntu focal/stable amd64 Packages
 docker-ce | 5:20.10.1~3-0~ubuntu-focal | https://download.docker.com/linux/ubuntu focal/stable amd64 Packages
 docker-ce | 5:20.10.0~3-0~ubuntu-focal | https://download.docker.com/linux/ubuntu focal/stable amd64 Packages
 docker-ce | 5:19.03.15~3-0~ubuntu-focal | https://download.docker.com/linux/ubuntu focal/stable amd64 Packages
 docker-ce | 5:19.03.14~3-0~ubuntu-focal | https://download.docker.com/linux/ubuntu focal/stable amd64 Packages
 docker-ce | 5:19.03.13~3-0~ubuntu-focal | https://download.docker.com/linux/ubuntu focal/stable amd64 Packages
 docker-ce | 5:19.03.12~3-0~ubuntu-focal | https://download.docker.com/linux/ubuntu focal/stable amd64 Packages
 docker-ce | 5:19.03.11~3-0~ubuntu-focal | https://download.docker.com/linux/ubuntu focal/stable amd64 Packages
 docker-ce | 5:19.03.10~3-0~ubuntu-focal | https://download.docker.com/linux/ubuntu focal/stable amd64 Packages
 docker-ce | 5:19.03.9~3-0~ubuntu-focal | https://download.docker.com/linux/ubuntu focal/stable amd64 Packages

然后

sudo apt-get update && sudo apt-get install -y docker-ce docker-ce-cli containerd.io

(6)修改docker启动项

mkdir -vp /etc/docker/
sudo tee /etc/docker/daemon.json <<-'EOF'
{
"registry-mirrors": [
"https://docker.mirrors.ustc.edu.cn",
"https://hub-mirror.c.163.com",
"https://reg-mirror.qiniu.com",
"https://registry.docker-cn.com"
],
"exec-opts": ["native.cgroupdriver=systemd"]
}
EOF

(7)保存退出,更新设置

sudo systemctl daemon-reload
sudo systemctl start docker
sudo systemctl enable docker

(8)查看docker版本和状态

sudo docker version
sudo systemctl status docker

在这里插入图片描述

9. 安装 cri-dockerd 组件

一般来说下载最新的就行:
进入以下网址(https://github.com/Mirantis/cri-dockerd/releases),下载cri组件(版本看自己选择),这里选择0.26。
找到想要的版本,点进去,找到对印的安装包下载,Ubuntu应该下载deb包,CentOS是rpm包。
在这里插入图片描述同时,还要注意版本代号,Ubuntu18.04代号是Bionic,22.04.1是jammy。
注意包名!! 一般输入到cri三个字母以后使用TAB键补全即可。

sudo dpkg -i cri-dockerd_0.2.6.3-0.ubuntu-jammy_amd64.deb 

(1)调整启动参数,注意此处,后续报错可能会回来改

sudo sed -i -e 's#ExecStart=.*#ExecStart=/usr/bin/cri-dockerd --container-runtime-endpoint fd:// --network-plugin=cni --pod-infra-container-image=registry.aliyuncs.com/google_containers/pause:3.7#g' /lib/systemd/system/cri-docker.service

(2)设置开机自启动

sudo systemctl daemon-reload
sudo systemctl enable cri-docker

(3)查看cri-docker状态

sudo systemctl status cri-docker

10. 安装Kubernetes

(1)安装依赖

sudo apt-get install -y apt-transport-https ca-certificates curl

(2)安装GPG密匙

sudo curl -fsSLo /usr/share/keyrings/kubernetes-archive-keyring.gpg  https://mirrors.aliyun.com/kubernetes/apt/doc/apt-key.gpg

sudo echo "deb [signed-by=/usr/share/keyrings/kubernetes-archive-keyring.gpg] http://mirrors.aliyun.com/kubernetes/apt kubernetes-xenial main" | sudo tee /etc/apt/sources.list.d/kubernetes.list

(3)更新软件源

sudo apt-get update

(4)查看Kubernetes可用版本

apt-cache madison kubeadm

注意:如果Ubuntu使用不同的软件源,对软件版本的命名会有所不同,aliyun的源在结尾会有 -00下载对应版本的kubernetes组件,这里下载1.25.0-00, 有需要可以更换其他版本

sudo apt-get install -y kubelet=1.25.0-00 kubeadm=1.25.0-00 kubectl=1.25.0-00

(5)标记软件包,防止自动更新

sudo apt-mark hold kubelet kubeadm kubectl

(6)配置kubelet

mkdir /etc/sysconfig
sudo gedit /etc/sysconfig/jubelet

复制以下内容,保存退出

KUBELET_KUBEADM_ARGS="--container-runtime=remote --container-runtime-sudoendpoint=/run/cri-dockerd.sock

(7)启动kubelet

systemctl enable --now kubelet 

以上内容是所有节点都要执行的,下面的操作步骤会分master节点和Node节点

二、单实例K8s集群部署

(一)Master节点初始化

1. 查看初始化需要的镜像

sudo kubeadm config images list --image-repository registry.aliyuncs.com/google_containers

2. 拉取镜像

sudo kubeadm config images pull --image-repository=registry.aliyuncs.com/google_containers --cri-socket unix:///run/cri-dockerd.sock

3. 初始化节点

注意这里的ip地址要换成你的master节点的ip地址,k8s的版本也要换成你下载的版本(此处不要加-00,尽管你下载的包名带-00)。切换到root模式再执行:

sudo su
sudo kubeadm init --control-plane-endpoint=192.168.16.100 --kubernetes-version=v1.25.0 --pod-network-cidr=10.244.0.0/16 --service-cidr=10.96.0.0/12 --token-ttl=0 --cri-socket unix:///run/cri-dockerd.sock --upload-certs --image-repository registry.aliyuncs.com/google_containers

此时出现如下界面就配置好了:
在这里插入图片描述
记住kubeadm join那条指令,后续用于node节点加入集群。

4. 配置环境变量

还是在su环境下:

export KUBECONFIG=/etc/kubernetes/admin.conf
mkdir -p $HOME/.kube
sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
sudo chown $(id -u):$(id -g) $HOME/.kube/config

5. 切换普通模式

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

(二)安装网络插件flannel

wget https://github.com/flannel-io/flannel/releases/download/v0.20.1/flanneld-amd64
sudo mkdir /opt/bin
sudo cp flanneld-amd64 /opt/bin/flanneld
sudo chmod +x /opt/bin/flanneld

继续执行:

sudo kubectl apply -f https://raw.githubusercontent.com/flannel-io/flannel/master/Documentation/kube-flannel.yml

等待一会,查看状态(root模式执行)结果应该会变成ready

kubectl get nodes

(三)Node节点,加入集群

wget https://github.com/flannel-io/flannel/releases/download/v0.20.1/flanneld-amd64
mkdir /opt/bin
cp flanneld-amd64 /opt/bin/flanneld
chmod +x /opt/bin/flanneld

加入节点,利用刚才保存的命令:(末尾加上–cri-socket unix:///run/cri-dockerd.sock)

kubeadm join 192.168.16.100:6443 --token hkzgsi.omynmdnk9vy0wkxt \
	--discovery-token-ca-cert-hash sha256:aee605c8ac29e7b8ea678020ca410833715a8d01a262f506b6dc6a53fb24be5d \
	--cri-socket unix:///run/cri-dockerd.sock

kubeadm join 192.168.16.100:6443 --token hkzgsi.omynmdnk9vy0wkxt \
	--discovery-token-ca-cert-hash sha256:aee605c8ac29e7b8ea678020ca410833715a8d01a262f506b6dc6a53fb24be5d \
	--control-plane --certificate-key e5d40240c1d77691602358bfface8dc44dd98fe2c8d75c513f484c4ceafd7584

不出问题的话,主节点在root下执行

kubectl get nodes

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

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

相关文章

新零售时代下的实体门店步履维艰,实体门店应该如何起死回生吗?

传统实体店在新零售时代的下&#xff0c;大众的消费习惯早已经发生天翻地覆的变化&#xff0c;因而实体行业受到新型消费带来的冲击&#xff0c;再加上电商平台的迅速崛起与发展&#xff0c;实体门店更加是步履维艰。因此改变是必然&#xff0c;那么传统实体店想要转型走新零售…

万字深剖进程地址空间(全程干货)

目录前言一、程序地址空间1.程序地址空间的简图(1)正文代码(2)初始化数据(3)未初始化数据(4)堆区(5)共享区(6)栈区(7)命令行参数和环境变量2.实验&#xff1a;验证程序地址空间中各个区域的存在3.实验&#xff1a;验证堆区和栈区中地址的增长方向4.实验&#xff1a;如何理解sta…

算法设计与分析 SCAU17104 视频流有效调度

17104 视频流有效调度 时间限制:1000MS 代码长度限制:10KB 提交次数:25 通过次数:9 题型: 编程题 语言: G;GCC;VC;JAVA Description 现在n个视频流要在一条通信链路上一个接一个的传送。视频流i由bi位组成&#xff0c;这些位需要一个常数速率&#xff0c; 在ti秒内被发送。你…

lua-快速入门学习

lua-快速入门学习 安装 centos环境&#xff1a; yum install lua windows&#xff1a; window 下你可以使用一个叫 “SciTE” 的 IDE环 境来执行 lua 程序&#xff0c;下载地址为&#xff1a; Github 下载地址&#xff1a;https://github.com/rjpcomputing/luaforwindows/…

基于JavaSpringmvc+Vue+elementUI大学生求职招聘系统详细设计实现

博主介绍&#xff1a;✌全网粉丝20W,csdn特邀作者、博客专家、CSDN新星计划导师、java领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和毕业项目实战✌ &#x1f345;文末获取联系&#x1f345;精彩专栏推荐订阅&#x1f447;&#x1f…

前端开发技巧记录

1.取数组最后一位 let arr[1,2,3,4,5] console.log(arr[arr.length-1]) //5 console.log(arr.at(-1)) // 52.用??代替||&#xff0c;判空 ||运算符是左边是‘’ false 0 null undifined等&#xff0c;都会返回后侧的值。而??必须运算符左侧的值为null或undefined时&#x…

智能家居系统 QT

一 环境范围设置 &#xff08;1&#xff09;界面添加新控件 在mainwindow.ui 添加控件&#xff1a; 控件的类型 文本内容 对象名&#xff08;唯一&#xff09; 是否有槽函数 QLabel <温度< lable_随意 否 QLabel <湿度< lable_随意 否 QLabel <光…

CTF-misc练习(https://buuoj.cn)之第一页

一、金胖子 1.打开gif&#xff0c;看到有东西闪过&#xff0c;把gif分帧保存 2.就得到flag&#xff1a; 二、二维码 1.分析压缩包&#xff1a; 2.解压图片&#xff0c;分析图片&#xff0c;还有一个隐藏文件&#xff1a; 3.分离图片&#xff1a; 4.图片需要输入密码&#xff…

android studio 加载html文件(备忘)

android studio版本&#xff1a;2021.2.1 例程名称&#xff1a;htmlFile 我做的一个小东西需要一个软件协议之类的&#xff0c;之前直接用textview做&#xff0c;修改起来太麻烦&#xff0c;所以改成加载html文件&#xff0c;即解决了txt可能被修改的问题&#xff0c;如果下次…

python 3 - Clipspy模块使用

一、clipspy安装&#xff1a; Clipspy底层是基于clips规则引擎开发、支持python3的一个模块&#xff0c;在python3的工程中&#xff0c;可以通过调用clipsy的API接口实现clips规则引擎。 在线安装&#xff1a; pip install clipspy 当出现Successfully installed字样时&…

从零开始的深度学习之旅(3)

目录神经网络的损失函数1.损失函数的引入2.损失函数3.回归&#xff1a;误差平方和SSE3.1 MSE的使用3.2 二分类交叉熵损失函数3.3 极大似然估计推导二分类交叉熵损失3.4 用tensor实现二分类交叉熵损失4.多分类交叉熵损失函数4.1 实现多分类交叉熵损失神经网络的损失函数 1.损失…

Excel - 获取帮助信息,查找Sheet中和VBA里的可用函数

Excel获取帮助信息 在使用Excel时&#xff0c;可以点击菜单的Help&#xff0c;可以获取帮助信息或Training。 点击Help帮助信息&#xff1a; 如果你觉得查看不方便&#xff0c;开可以使用浏览器&#xff0c;访问官网线上支持文档&#xff1a; Excel help & learning 而点击…

【微服务】GateWay概念与使用

一、API 网关功能&#xff1a; 路由到指定位置&#xff1a;后台管理系统经常给各个服务发送请求&#xff0c;某一个服务掉线了&#xff0c;我们不可能手动去修改端口号&#xff0c;让它去其他机器找。因此&#xff0c;需要 API 网关&#xff0c;让其帮助我们将请求路由到正确位…

【华为OD机试真题 python】竖直四子棋【2022 Q4 | 200分】

■ 题目描述 【竖直四子棋】 竖直四子棋的棋盘是竖立起来的,双方轮流选择棋盘的一列下子,棋子因重力落到棋盘底部或者其他棋子之上,当一列的棋子放满时,无法再在这列上下子。 一方的4个棋子横、竖或者斜方向连成一线时获胜。 现给定一个棋盘和红蓝对弈双方的下子步骤,…

学会问问题

推荐文档&#xff1a;学会问问题&#xff1b; 目录 三句话原则 你就是孙子 问问题过程 第一步—学会问好 示例如下 第二步—有屁快放 问问题需要加上的前缀或者后缀&#xff1a; 示例如下 第三步—介绍自己的框架 示例如下 第四步—介绍自己的解决思路 示例如下 …

spring cache (Redis方式)

目录前置pom: jar配置文件: application.ymlMyCacheConfig.java效果图前置 会演示springcache的使用方式 项目地址: https://gitee.com/xmaxm/test-code/blob/master/chaim-cache/chaim-spring-cache/chaim-spring-cache-redis/README.md 前置配置 本篇文章是基于上篇文章进行…

Flutter 使用FFI+CustomPainter实现全平台渲染视频

Flutter视频渲染系列 第一章 Android使用Texture渲染视频 第二章 Windows使用Texture渲染视频 第三章 Linux使用Texture渲染视频 第四章 全平台FFICustomPainter渲染视频&#xff08;本章&#xff09; 文章目录Flutter视频渲染系列前言一、如何实现1、C/C实现视频采集&#xf…

3. 使用PyTorch深度学习库训练第一个卷积神经网络CNN

这篇博客将介绍如何使用PyTorch深度学习库训练第一个卷积神经网络&#xff08;CNN&#xff09;。训练CNN使用 KMNIST 数据集&#xff08;MNIST digits数据集的替代品&#xff0c;内置在PyTorch中&#xff09;识别手写平假名字符&#xff08;handwritten Hiragana characters&am…

图的二种遍历-广度优先遍历和深度优先遍历

图的广度优先遍历 1.树的广度优先遍历 这样一个图中&#xff0c;是如何实现广度优先遍历的呢&#xff0c;首先&#xff0c;从1遍历完成之后&#xff0c;在去遍历2,3,4&#xff0c;最后遍历5 &#xff0c;6 , 7 , 8。这也就是为什么叫做广度优先遍历&#xff0c;是一层一层的往…

36个数据分析方法与模型

目录一、战略与组织二、质量与生产三、营销服务四、财务管理五、人力资源六、互联网运营好的数据分析师不仅熟练地掌握了分析工具&#xff0c;还掌握了大量的数据分析方法和模型。这样得出的结论不仅具备条理性和逻辑性&#xff0c;而且还更具备结构化和体系化&#xff0c;并保…