主目录地址


kubernetes基础环境安装

文档没有特殊标注内容需要每个节点都执行

基础环境检查

基础操作

# 关闭防火墙和selinux,此处不做过多解释
sed -i '7s#enforcing#disabled#g' /etc/selinux/config
setenforce 0
systemctl disable firewalld.service
systemctl stop firewalld.service
localectl set-locale LANG=en_US.UTF-8
source /etc/locale.conf
yum install ntp -y
systemctl start ntpd

检查网络

检查每个节点的MAC地址和product_uuid的唯一性

sudo cat /sys/class/dmi/id/product_uuid

k8s使用这些值来确定唯一性,虚拟机有可能会存在相同的,这会导致安装失败.

检查网络适配器,节点之间可以互相通信.

允许IPtables检查桥接流量

# 加载br_netfilter 模块
sudo modprobe br_netfilter
# 检查
lsmod | grep br_netfilter
# 设置iptables查看流量
cat <<EOF | sudo tee /etc/modules-load.d/k8s.conf
br_netfilter
EOFcat <<EOF | sudo tee /etc/sysctl.d/k8s.conf
net.bridge.bridge-nf-call-ip6tables = 1
net.bridge.bridge-nf-call-iptables = 1
EOF
sudo sysctl --system

检查要使用的基础容器服务.一般为dockercontainer

当两者并存时,k8s会优先使用docker, 因为Docker 18.09 附带了 containerd

更新内核版本

针对于centos7,因为centos7的内核默认为3.x版本,虽然满足k8s最低的要求但是存在问题及bug较多,运行docker及k8s并不是很稳定.

rpm --import https://www.elrepo.org/RPM-GPG-KEY-elrepo.org
rpm -Uvh http://www.elrepo.org/elrepo-release-7.0-2.el7.elrepo.noarch.rpm
#查看最新版内核: yum --disablerepo="*" --enablerepo="elrepo-kernel" list available
#安装最新版:
yum --enablerepo=elrepo-kernel install kernel-ml kernel-ml-devel -y
#查看当前可用内核版本:
awk -F\' '$1=="menuentry " {print i++ " : " $2}' /etc/grub2.cfg
#选择最新内核版本,0代表查看当前可用内核版本列表的左侧索引号
grub2-set-default 0
#生成grub文件
grub2-mkconfig -o /boot/grub2/grub.cfg
#重启linux
reboot

安装组件

安装docker

此处没有指定docker版本,默认下载最新的,但是需要确保每一个节点的docker版本都是相同的

# 添加国内源
cat <<END >/etc/yum.repos.d/repo.repo
[repo]
name=repo
baseurl = https://mirrors.tuna.tsinghua.edu.cn/docker-ce/linux/centos/7/x86_64/stable/
enabled=1
gpgcheck=0
END
yum install docker-ce -y
mkdir /etc/docker
echo "{\"graph\": \"/data/docker\",\"exec-opts\": [\"native.cgroupdriver=systemd\"],\"registry-mirrors\": [\"https://fi5svsbh.mirror.aliyuncs.com\"],\"log-driver\": \"json-file\",\"log-opts\": {\"max-size\": \"100m\"},\"storage-driver\": \"overlay2\",\"storage-opts\": [\"overlay2.override_kernel_check=true\",\"overlay2.size=10G\"]
}">/etc/docker/daemon.json

参数解释:

  1. graph: docker数据存储位置

  2. exec-opts: docker使用的驱动程序,由于 kubeadm 把 kubelet 视为一个系统服务来管理,所以对基于 kubeadm 的安装, 推荐使用 systemd 驱动,不推荐 cgroupfs 驱动。

    详情可参考k8s官网文档: 配置 cgroup 驱动 和 容器运行时

  3. overlay2.override_kernel_check: 此参数和overlay2.size搭配使用,一为开启限制,一为限制单个容器可使用的最大磁盘大小,但是需要注意,只有xfs类型才支持此参数,否则会启动失败.

    执行命令journalctl -xe查看日志:

    failed to start daemon: error initializing graphdriver: Storage option overlay2.size not supported.

    使用如下配置:

    echo "{\"graph\": \"/data/docker\",\"exec-opts\": [\"native.cgroupdriver=systemd\"],\"registry-mirrors\": [\"https://fi5svsbh.mirror.aliyuncs.com\"],\"log-driver\": \"json-file\",\"log-opts\": {\"max-size\": \"100m\"},\"storage-driver\": \"overlay2\"
    }">/etc/docker/daemon.json
    
# 启动服务
systemctl restart docker
systemctl enable docker

安装k8s

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# 将 SELinux 设置为 permissive 模式(相当于将其禁用)
sudo setenforce 0
sudo sed -i 's/^SELINUX=enforcing$/SELINUX=permissive/' /etc/selinux/configsudo yum install -y kubelet kubeadm kubectl --disableexcludes=kubernetes
# 如果下载失败使用:
yum install -y --nogpgcheck kubelet kubeadm kubectlsudo systemctl enable --now kubelet
  • kubeadm:用来初始化集群的指令。
  • kubelet:在集群中的每个节点上用来启动 Pod 和容器等。
  • kubectl:用来与集群通信的命令行工具。

此处使用了国内阿里云的下载地址,相对于k8s官方提供的,此地址无需梯子可直接访问,同时下载速度较快,但是没有开放同步方式可能会有gpg索引检查失败的情况,使用命令:

yum install -y --nogpgcheck kubelet kubeadm kubectl

默认安装是去最新版本,如果指定版本使用以下命令,但是注意每个包的版本都要相同.

yum install -y kubelet-1.23.4 kubeadm-1.23.4 kubectl-1.23.4

修改主机名

根据不同的初始化方式,修改不同的主机名,例如单主节点可以改为一个master和多个worker(worker1,worker2…).只需要每个节点名称不同即可方便查看

Kubernetes集群初始化时默认以主机名作为集群中的节点名称,当然也可以在导入节点的时候手动指定名称

# centos 7 修改主机名命令
hostnamectl set-hostname master;bash

如果是多主节点,可以采用master1,master2,worker1,worker2…这种命名方式,方便get node时的区分.

添加解析

cat >>/etc/hosts<<EOF
20.88.9.31 master1
20.88.9.32 master2
20.88.9.33 master3
20.88.9.34 worker1
EOF

安装完成,此章节结束


其他参考文档:

安装 kubeadm

kubernetes基础环境安装相关推荐

  1. Kubernetes 生产环境安装部署 基于 Kubernetes v1.14.0 之 etcd集群

    说明:没有明确注明在某台服务器,都是在k8s-operation 工作服务器完成 K8S node 节点数大于2000 节点 k8s-operation 目录规划,工作目录/apps/work/k8s ...

  2. 【云原生 · Kubernetes】Kubernetes基础环境搭建

    1.系统镜像 安装运行环境系统要求为CentOS7.5,内核版本不低于3.10. CentOS-7.5-x86_64-DVD-1804.iso Chinaskill_Cloud_PaaS.iso Do ...

  3. 部署hrm系统-Docker基础环境安装

    项目部署介绍 部署需要三难问题 需要N多服务器 部署过程非常麻烦:编译,测试,打包,发布等等 服务需要动态扩容与缩容 安装Docker 安装之前你可以将你的虚拟机拍一个快照,万一出错了还原就好 1)直 ...

  4. 树莓派4B 8G安装日志(1)——基础环境安装

    由于内卷严重,想带着孩子(一年级)玩玩编程,所以把树莓派又玩了起来.之前我买的是3B+现在更新到了4b,于是买了8G版本回来.下面把安装过程中的坑和琐事记录下来备忘也可为由类似需求的朋友借鉴. 一.安 ...

  5. WINDOWS系统机器学习基础环境安装教程

    目录 一.Anaconda安装 二.Spyder配置与使用 三.安装PyTorch 一.Anaconda安装 anaconda官方链接:Anaconda | The World's Most Popu ...

  6. kubernetes集群安装

    文章目录 安装基础组件 初始化集群 初始化一个单机集群 初始化一个高可用集群 初始化一个使用ipvs及systemd的集群 其他组件安装 安装基础组件 安装Kubernetes所需的基础环境,如doc ...

  7. DAY1:Windows10 安装go语言基础环境

    安装go语言基础环境 基础环境 安装go1.18版本 安装vscode 安装git 基础环境 Windows10及以上,管理员权限. Gitee或者GitHub账号. 安装go1.18版本 下载地址: ...

  8. 理清 NVIDIA,CUDA,cuDNN,nvcc 关系 CUDA 环境安装

    文章目录 概念介绍 CUDA 环境安装 服务器基础环境安装 基础软件 SSH 和 SFTP Anaconda 替换 apt 源 Git freeglut NVIDIA 驱动安装 CUDA-toolki ...

  9. k8s安装之服务器基础环境配置

    环境准备 安装常用工具 yum install -y wget telnet net-tools lrzsz vim zip unzip ntpdate yum-utils ntp ntpdate d ...

  10. windows环境下32位汇编语言程序设计 90盘_Python 0基础详细教程 环境安装01

    Python语言有什么用,首先让大家了解Python语言的基本知识: Python语言是一种解释型,面向对象,动态数据类型的高级程序设计语言,Python语言是数据分析师的首选数据分析语言,通过数据挖 ...

最新文章

  1. 判断非负整数是否是3的倍数_六年级小升初数学总复习专题(2-1)因数与倍数...
  2. 天兔(Lepus)监控邮件推送安装配置
  3. 【数据结构与算法】之深入解析如何确定单链表有环并求环的入口和长度
  4. ubuntu离线安装fish
  5. Java商城项目实战
  6. GoLand External Libraries不展示Go Modules
  7. 最新StrongShop跨境电商系统源码+支持多语言
  8. html中让图片放大的代码,HTML5图片预览 放大(示例代码)
  9. [Groovy]Groovy with Ant Task
  10. 【随】BIDS 怪异现象
  11. Python IDE、IDLE 和 Tcl/Tk
  12. Android 手机实现网络嗅探发现周围设备(类似悟空遥控器)
  13. peoplesoft笔记
  14. 【Camera基础(二)】摄像头驱动原理和开发V4L2子系统驱动架构
  15. PyTorch搭建LSTM实现多变量多步长时间序列预测(一):直接多输出
  16. 12.15 村长项目借口
  17. vmbox-android
  18. python绘制对数函数
  19. 【调剂】北京科技大学钢铁共性技术协同创新中心2021年硕士拟接收调剂公告
  20. 支付宝即时到账在线语音音效生成器html源码(地球最强装13)

热门文章

  1. BatchNorm和LayerNorm——通俗易懂的理解
  2. html全部颜色代码大全,html代码大全(基础使用代码)(颜色代码完整版)
  3. \u5168\u56fd\u7f8e\u5bb9\u5927\u592b数据采集数据(\u82b1\u5bb9\u7f51 huaroo 公开数据),爬虫120例之26例
  4. 计算机圆半径计算公式,圆半径计算公式是什么?
  5. iOS应用内购基本步骤及问题
  6. java swing 颜色_Java Swing按钮颜色
  7. 如何打开mysql数据库?
  8. imazing是什么?iPhone苹果第三方iOS设备管理软件
  9. ios设备管理 iMazing官方免费激活电脑版下载v2.11.6.0
  10. 前沿技术讲座感悟以及关于互联网时代前沿技术的个人理解与思考