首页 > 其他分享 >使用kubeadm安装k8s1.26.0笔记2

使用kubeadm安装k8s1.26.0笔记2

时间:2023-02-02 09:58:10浏览次数:47  
标签:k8s1.26 -- master01 笔记 dockerd docker cri 安装 kubeadm

一. 安装版本

Kubeadm使用cni方式安装
版本:v1.26.0

 

二. 机器准备

1. 机器规格

本次安装1个master和1个node节点
Master: 192.168.64.6
Node: 192.168.64.7
规则:
CPU:2
内存:4G
系统:ubuntu20.04
磁盘:30G

Master使用cri-dockered方案安装
Node使用containered方案安装

2. 虚拟机准备

创建:

multipass launch -n master01 -c 2 -m 4G -d 40G

查看镜像:multipass find

指定版本:multipass launch -n master01 -c 2 -m 4G -d 40G 20.04

文档:
https://segmentfault.com/a/1190000023083548?utm_source=sf-similar-article

3. 机器配置

1.配置Dns

  检查dns是否可用

2. 外网权限

可以访问外网

3. 时区设置

timedatectl set-timezone Asia/Shanghai
date -R # 检查时区

4. 安装chrony

apt install chrony -y

修改配置:
/etc/chrony/chrony.conf
修改:pool master01 #将master01作为ntp服务器
重新启动:

root@master01:~# systemctl restart chronyd
root@master01:~# systemctl enable chronyd

主从控节点同步时间

chronyc sources

5. 设置hosts

hostnamectl set-hostname master #设置主机名称

设置hosts文件:

cat >> /etc/hosts << OFF
192.168.64.6 master01
192.168.64.7 node01
OFF

6. 关闭swap

# 如果不关闭,默认的kubelet将无法启动
swapoff -a #立即生效
sed -i 's/.*swap.*/#&/' /etc/fstab # 不立即生效
free -h #查看交换分区

7. 关闭防火墙

ufw disable

8. 加载ipvs模块

modprobe -- ip_vs
modprobe -- ip_vs_rr
modprobe -- ip_vs_wrr
modprobe -- ipvs_sh
#modprobe -- nf_conntrack_ipv4
modprobe -- nf_conntrack
lsmod | grep nf_conntrack

9. 内核参数配置

# 创建/etc/sysctl.d/k8s.conf,添加如下内容
cat > /etc/sysctl.d/k8s.conf <<EOF
net.bridge.bridge-nf-call-iptables=1 # 开启网桥模式
net.bridge.bridge-nf-call-ip6tables=1 # 开启网桥模式
net.ipv4.ip_forward=1
EOF

#生效
modprobe br_netfilter # 立即生效,重启失效,流量控制的内核模块
sysctl -p /etc/sysctl.d/k8s.conf


# 配置永久生效
cat <<EOF |tee /etc/modules-load.d/k8s.conf
br_ netfilter
EOF

10. 安装其他工具

apt install -y ipvsadm ipset

三. Docker方式CRI安装

1. docker环境准备

1. 查看系统信息

 

root@master01:~# lsb_release  -a
No LSB modules are available.
Distributor ID:    Ubuntu
Description:    Ubuntu 20.04.5 LTS
Release:    20.04
Codename:    focal

 

2. 查看内核版本

root@master01:~# uname -r
5.4.0-137-generic
root@master01:~# 

3. 查看完整的linux发行版信息

root@master01:~# cat /proc/version
Linux version 5.4.0-137-generic (buildd@bos01-arm64-023) (gcc version 9.4.0 (Ubuntu 9.4.0-1ubuntu1~20.04.1)) #154-Ubuntu SMP Thu Jan 5 17:03:02 UTC 2023

4. 查看所有的docker版本

 

root@master01:~# apt-cache madison docker-ce

5. 更新docker源

# 卸载原来的Docker以及contained

root@master01:~# apt-get remove docker docker-engine docker.io containerd runc 

root@master01:~# apt remove docker-ce docker-ce-cli containerd.id -y

# 更新apt程序包索引并安装程序包,已允许apt通过https使用存储库

# 安装必要的一些系统工具

root@master01:~# sudo apt-get install -y apt-transport-https ca-certificates curl software-properties-common gnupg lsb-release

# 添加docker官方的GPG密钥

curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg

# 设置稳定存储库

echo \
  "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/ubuntu \
  $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null

# 更新

apt-get update

6. 安装最新版本

# 安装
sudo apt-get install docker-ce docker-ce-cli containerd.io
# 查看版本
docker --version
docker info
# 通过systemd启动Docker服务
sudo systemctl start docker

# 可以通过status命令查看一下启动状态,此处无须管理员权限
systemctl status docker

7. 修改docker配置已适应kubelet

# 设置docker镜像加速及修改cgroups Driver

 cat > /etc/docker/daemon.json <<EOF
 {

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

}

EOF

重新加载

systemctl daemon-reload

systemctl  restart docker

 

2. Ubuntu安装CRI-dockered

开源项目-替换dockershim in kubelet中

地址:

https://github.com/Mirantis/cri-dockerd

1. 下载及安装

# 下载

wget https://github.com/Mirantis/cri-dockerd/releases/download/v0.3.1/cri-dockerd_0.3.1.3-0.ubuntu-focal_amd64.deb

# 安装

dpkg -i cri-dockerd_0.3.1.3-0.ubuntu-focal_amd64.deb

# 或者使用tgz的包进行安装

wget https://github.com/Mirantis/cri-dockerd/releases/download/v0.3.1/cri-dockerd-0.3.1.arm64.tgz
cp cri-dockerd/cri-dockerd /usr/bin/
chmod +x /usr/bin/cri-dockerd

配置 cri-dockerd

View Code

设置配置文件

vim /usr/lib/systemd/system/cri-docker.service 

ExecStart=/usr/bin/cri-dockerd --container-runtime-endpoint=unix:///var/run/cri-dockerd.sock --network-plugin=cni --pod-infra-container-image=registry.aliyuncs.com/google_containers/pause:3.9

启动 cri-docker

systemctl daemon-reload
systemctl start cri-docker
systemctl enable cri-docker
systemctl status cri-docker

四. Kubeadm Kubelet Kubectl安装

1. kubeadm简介

kubeadm是kubernetes的集群安装工具, 能够快速完成集群的安装,能完成下面的拓扑安装

  • 但节点k8s(1+0)
  • 单master和多个node的k8s(1+n)
  • Master ha 和多个node的k8s(m*1+n)

kubeadm在整个k8s架构的位置

  

2. kubeadm常用命令

3. 安装

3. 安装2

标签:k8s1.26,--,master01,笔记,dockerd,docker,cri,安装,kubeadm
From: https://www.cnblogs.com/wlike/p/17084963.html

相关文章

  • 读Java8函数式编程笔记08_测试、调试和重构
    1. Lambda表达式的单元测试1.1. 单元测试是测试一段代码的行为是否符合预期的方式1.2. Lambda表达式没有名字,无法直接在测试代码中调用1.2.1. 将Lambda表达式放入......
  • SpringBoot学习笔记 - 构建、简化原理、快速启动、配置文件与多环境配置、技术整合案
    【前置内容】Spring学习笔记全系列传送门:Spring学习笔记-第一章-IoC(控制反转)、IoC容器、Bean的实例化与生命周期、DI(依赖注入)Spring学习笔记-第二章-注解......
  • 「matlab学习笔记」MATLAB程序流程控制
    中国大学MOOC科学计算与MATLAB语言(点击此处跳转)MATLAB官方文档(点击此处跳转)3.1程序文件脚本文件和函数文件在MATLAB中程序文件的扩展名为.m,所以程序文件也称为M文件......
  • Per-Pixel Classification is Not All You Need for Semantic Segmentation论文阅读笔
    作者的解读:https://www.zhihu.com/search?type=content&q=MaskFormer摘要现有的语义分割方法将分割视为逐像素的分类,本文提出了MaskFormer,把分割转化为预测一系列的mask......
  • 离散化学习笔记
    本来应该配着一道题讲的因为太晚了就先咕咕了挖个坑虽然大概率应该不会填离散化简单来说就是当你需要用数组统计一些数的出现次数但数据范围过大(如1e9)无法使用数组存......
  • 线段树学习笔记
    本条目持续更新中线段树1:建树单点修改区间求和关于线段树:假如我们有这样一个数列33280721那我们就可以建一个线段树大概长这样:由图可知编号为i的左......
  • 数论笔记7-一元高次同余方程与多元同余方程
    这里我们先讨论一般情况(但一点也不简单,有很多厉害的定理),二次剩余之后再说.1.一元同余方程的具体解法我们考虑一般的一元同余方程\(f(x)\equiv0\pmodm\),容易......
  • 数论笔记汇总
    参考资料:潘承洞潘承彪《初等数论》(第三版)(主要,习题也是这上面的)闵嗣鹤严士健《初等数论》(第四版)(补充作用)大概评价一下两本书(个人主观).二潘的初等数......
  • 爬google podcast 笔记
    问题1https://stackoverflow.com/questions/57217924/pyppeteer-errors-browsererror-browser-closed-unexpectedlyexportno_proxy=localhost,127.0.0.1......
  • 《RPC实战与核心原理》学习笔记Day15
    21|流量回放:保障业务技术升级的神器什么是流量回放?流量就是指在某个时间段内的所有请求,我们通过某种手段把发送到A应用的所有请求录制下来,然后把这些请求统一转发到B......