主目录地址


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. 慢SQL,压垮团队的最后一根稻草No.92
  2. 异构GoldenGate 12c 双向复制配置
  3. STC89C52单片机 独立键盘
  4. 解决ubuntu Gvim 菜单乱码
  5. 重邮计算机导师评价,李章勇_重庆邮电大学研究生导师信息
  6. Java基础 选择语句,循环结构数组
  7. 名言为什么不能当论据_为什么您的工作场所论据没有您想要的那么有效
  8. 4.2号 作业讲解
  9. hadoop(八) - hbase集群环境搭建
  10. 事件绑定,事件捕获,事件冒泡以及事件委托,兼容IE
  11. 腾讯 “绝悟”论文披露技术细节。
  12. 百度热力图颜色说明_基于百度热力图的中国多中心城市分析|上海城市规划
  13. java读取scv文件
  14. 世界读书日 | 技术人不要错过的好书(IT前沿技术)
  15. 同时分析多个中通快递单号物流的最后站点和派件员
  16. (VCIP-2018)基于选择性卷积特征的广义均值池化细粒度图像检索
  17. 关于配置ssl证书后网页无法访问的原因
  18. 苹果手机与手表怎么通信_苹果手表是新的入门手机
  19. LK光流金字塔算法原理及C++实现
  20. java sql 查询中的转义序列不对_在 JDBC 中使用 SQL 转义序列 - SQL Server | Microsoft Docs...

热门文章

  1. 阿里云接受邮件服务器是什么,接收邮件服务器pop3
  2. STM32F103+RTT从零开始(二)——RTT系统中点亮LED
  3. 极速office(word)如何在方框内打钩
  4. php7.0项目在本地完美运行上传至服务器手机app不显示数据
  5. 支付网关 | 京东618、双11用户支付的核心承载系统(上篇)
  6. Floating point exception
  7. 微信小程序: 摇色子
  8. linux使用磁盘配额,linux磁盘配额使用
  9. 英文简历制作必备词汇表
  10. Win11查看本机WiFi密码