ubuntu 20.04使用kubeadm安装k8s集群
本文主要用于记录,步骤参考了:https://blog.csdn.net/weixin_44559544/article/details/123381441
一、设备相关准备
1、修改节点主机名,这样好区分
我总共是三台设备:
分别设置为:hostnamectl --static set-hostname k8s-master 192.168.100.1
hostnamectl --static set-hostname k8s-node1 192.168.100.2
hostnamectl --static set-hostname k8s-node2 192.168.100.3
建议所有命令使用root权限。
2、禁止 swap 分区,一定要设置,最好临时和永久同时设置。以下操作三台设备都需要进行设置。
临时关闭: swapoff -a
永久关闭:vim /etc/fstab

3、关闭防火墙,三台设备都需要关闭,新手建议直接关闭
ufw disable
二、安装docker
1、经过验证本次推荐一种,需要其他的可以参考其他,例如:菜鸟教程
一键安装最新阿里云docker-ce脚本,三台设备都要执行:
找一个自己喜欢的目录(相关的安装sh脚本放置到该目录下):mkdir -p /opt/installSh
进入创建的目录:cd /opt/installSh
vim docker.sh
复制写入
#!/bin/bash
apt update
apt install -y apt-transport-https ca-certificates curl gnupg-agent software-properties-common
sudo curl -fsSL https://mirrors.aliyun.com/docker-ce/linux/ubuntu/gpg | sudo apt-key add -
add-apt-repository \
"deb [arch=amd64] https://mirrors.aliyun.com/docker-ce/linux/ubuntu \
$(lsb_release -cs) \
stable"
apt update
apt install -y docker-ce docker-ce-cli containerd.io
docker version
给文件赋权限:chmod 777 docker.sh
执行安装:sh docker.sh
等待安装完成
2、配置docker-hub源
要是用国内的,基本上是失败。
vim /etc/docker/daemon.json
{
"registry-mirrors": [
"https://hub-mirror.c.163.com",
"https://ustc-edu-cn.mirror.aliyuncs.com",
"https://ghcr.io",
"https://mirror.baidubce.com"
]
}
3、修改一下docker.service。提前配置,避免后期踩坑,我可是经过实验的
找到文件:vim /usr/lib/systemd/system/docker.service

添加选中的这一段,不添加再安装k8s master节点的时候拉去镜像会出问题
--exec-opt native.cgroupdriver=systemd
然后记得要重启docker服务:systemctl restart docker
三、安装指定版本的kubeadm
同样三台设备都要执行哈!
进入我们放置sh脚本的目录:cd /opt/installSh
新建kubeadm.sh文件:vim kubeadm.sh
#!/bin/bash
apt update && apt install apt-transport-https
curl -fsSL https://mirrors.aliyun.com/kubernetes/apt/doc/apt-key.gpg | apt-key add -
add-apt-repository "deb [arch=amd64] https://mirrors.aliyun.com/kubernetes/apt/ kubernetes-xenial main"
apt-get update
apt-cache madison kubelet kubectl kubeadm |grep '1.22.7-00'
apt install -y kubelet=1.22.7-00 kubectl=1.22.7-00 kubeadm=1.22.7-00
给脚本赋权限:chmod 777 kubeadm.sh
执行安装脚本:sh kubeadm.sh
这里没有多大的意外!
配置禁用 swap:
vim /etc/default/kubelet
KUBELET_EXTRA_ARGS="--fail-swap-on=false"
重启服务:
systemctl daemon-reload && systemctl restart kubelet
四、初始化集群
1、master节点:
a、初始化节点
kubeadm init \
--kubernetes-version=v1.22.7 \
--image-repository registry.aliyuncs.com/google_containers \
--pod-network-cidr=10.24.0.0/16 \
--ignore-preflight-errors=Swap
成功后会打印出类似下面的输出,要保存起来
类似下图,这个是我截图别人的

b、配置kubectl工具,不进行以上设置,你会发现用不了
mkdir -p $HOME/.kube
sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
sudo chown $(id -u):$(id -g) $HOME/.kube/config
c、部署集群网络
这里使用calico v3.22,支持1.21 1.22 1.23版本k8s
找一个自己喜欢的目录:cd /opt
下载一下yaml文件:curl https://projectcalico.docs.tigera.io/manifests/calico.yaml -O
进行部署:kubectl apply -f calico.yaml
2、node1和node2节点
在这两台设备上分别执行,刚刚让保存的命令:

就是画起来的这个:
kubeadm join 192.168.1.21:6443 --token xcczbg.zr6mb4dzlu6wdg6r \
--discovery-token-ca-cert-hash sha256:3594158e202d0280512f8a3bab2de144b601fb3c7f928dcebc2556a55d673ff0(不要直接复制,这里是给你列举一下,你要复制自己的,进行执行)
五、查看节点是否部署成功
在任意一个设备,建议master节点执行:kubectl get node

至此部署完成,这个ready状态,不要着急,你要等一会!
ubuntu 20.04使用kubeadm安装k8s集群的更多相关文章
- 使用kubeadm安装k8s集群故障处理三则
最近在作安装k8s集群,测试了几种方法,最终觉得用kubeadm应该最规范. 限于公司特别的网络情况,其安装比网上不能访问google的情况还要艰难. 慢慢积累经验吧. 今天遇到的三则故障记下来作参考 ...
- 使用 --image-repository 解决kubeadm 安装k8s 集群 谷歌镜像墙的问题
从网上我们看到的好多kubeadm 安装k8s 的时候都说需要下拉取镜像,然后修改,实际上 我们可以使用配置参数,快速的跳过墙的问题 说明: 基础镜像,我们仍然存在,拉取的问题,但是dockerhub ...
- centos7下用kubeadm安装k8s集群并使用ipvs做高可用方案
1.准备 1.1系统配置 在安装之前,需要先做如下准备.三台CentOS主机如下: 配置yum源(使用腾讯云的) 替换之前先备份旧配置 mv /etc/yum.repos.d/CentOS-Base. ...
- kubeadm安装k8s集群
安装kubeadm kubectl kubelet 对于Ubuntu/debian系统,添加阿里云k8s仓库key,非root用户需要加sudo apt-get update && a ...
- k8s学习笔记之二:使用kubeadm安装k8s集群
一.集群环境信息及安装前准备 部署前操作(集群内所有主机): .关闭防火墙,关闭selinux(生产环境按需关闭或打开) .同步服务器时间,选择公网ntpd服务器或者自建ntpd服务器 .关闭swap ...
- Ubuntu 14.04主机上部署k8s集群
部署结构 3台虚拟机,其中1台作为master,2台作为minion,都安装了最新版本的docker engine(目前是1.11.2) k8s版本是1.3.0 主要问题 部署步骤基本按照官方文档:h ...
- Kubernetes全栈架构师(Kubeadm高可用安装k8s集群)--学习笔记
目录 k8s高可用架构解析 Kubeadm基本环境配置 Kubeadm系统及内核升级 Kubeadm基本组件安装 Kubeadm高可用组件安装 Kubeadm集群初始化 高可用Master及Token ...
- Kubernetes(K8s) 安装(使用kubeadm安装Kubernetes集群)
背景: 由于工作发生了一些变动,很长时间没有写博客了. 概述: 这篇文章是为了介绍使用kubeadm安装Kubernetes集群(可以用于生产级别).使用了Centos 7系统. 一.Centos7 ...
- kubernetes教程第一章-kubeadm高可用安装k8s集群
目录 Kubeadm高可用安装k8s集群 kubeadm高可用安装1.18基本说明 k8s高可用架构解析 kubeadm基本环境配置 kubeadm基本组件安装 kubeadm集群初始化 高可用Mas ...
- kubeadm搭建K8s集群及Pod初体验
基于Kubeadm 搭建K8s集群: 通过上一篇博客,我们已经基本了解了 k8s 的基本概念,也许你现在还是有些模糊,说真的我也是很模糊的.只有不断地操作去熟练,强化自己对他的认知,才能提升境界. 我 ...
随机推荐
- @EnableDiscoveryClient和@EnableEurekaClient springboot3.x
@EnableDiscoveryClient和@EnableEurekaClient 将一个微服务注册到Eureka Server(或其他服务发现组件,例如Zookeeper.Consul等)的步骤 ...
- JAVA虚拟机14 类加载器
1.简介 Java虚拟机设计团队有意把类加载阶段中的"通过一个类的全限定名来获取描述该类的二进制字节流"这个动作放到Java虚拟机外部去实现,以便让应用程序自己决定如何去获取所需的 ...
- dotnet 8 preview 1 即将发布
.Net 8 preview 1 即将到来,让我们来提前看看都要发布什么吧. .Net 8 preview 1 即将到来 .NET 8 的第一个预览版将在几周内发布,微软的 David Ortinau ...
- 学习Java Day8
今天学习了for循环,与C语言几乎无差异: 也学习了while和do while循环 今天学习了for循环,与C语言几乎无差异: 也学习了while和do while循环
- Solon v2.1.4 发布。支持 java、kotlin、groovy!
本次发布,重点测试和验证了在 java.kotlin.groovy 三种 jvm 语言里,开箱即用的特性.并发布 Solon Initializr: https://solon.noear.org/s ...
- 流浪地球2:AI人工智能+数字生命+元宇宙
推荐:将 NSDT场景编辑器 加入你的3D开发工具链 剧情介绍 太阳危机 太阳即将老化膨胀,吞没太阳系,地球上的人类构思了各种生存计划:其一是"数字生命计划",该计划制造强大的 ...
- 脚本之美│VBS 入门交互实战
目录 什么是 VBS 第一个 VBS 脚本 msgbox 语法 中文乱码 弹窗交互功能 表白恶搞 什么是 VBS VBS 是一种 Windows 脚本语言,全称是 Microsoft Visual B ...
- linux 进程组和会话 守护进程
这两个概念的产生,是为了shell更好的管理作业,管理其创建的子进程 对其进行暂停,终止 执行命令,命令之间有时还需要管道进行通信 进程组是进程的合集 会话是进程组的合集 一个会话共用一个控制终端,也 ...
- 【PyQt5学习-03-】PyQt5 控件概念
快速开发:先看控件的功能,再根据需要选学 1.什么是控件 程序界面上的元素 各自独立 一块矩形区域 具有的功能 接收用户输入 用户点击 显示内容 放置其他控件 先学常用控件 基础控件 按钮 输入控件 ...
- 对服务器进行心跳检测 python django
(由于春节期间连不上服务器,但又不知道是不是服务器关机了,因此写一个心跳检测功能遇到问题时可以排查部分原因) 具体来说分为客户端和服务端,客户端为校园服务器,服务端为我们自己搭建的http服务器.客户 ...