01.部署kubernetes 1.20.2

组件版本

组件

安装的版本

kubeadm

1.20.2

kubectl

1.20.2

kubelet

1.20.2

kube-apiserver

1.20.2

kube-controller-manager

1.20.2

kube-scheduler

1.20.2

coredns

1.7.0

etcd

3.4.13-0

docker

20.10.2

calico

v3.17.1

环境准备

在所有节点都要操作

所有主机统一hosts

hosts统一如下

系统CentOS 7.7+以上

所有机器升级内核(可选)

导入升级内核的yum源

查看可用版本 kernel-lt指长期稳定版 kernel-ml指最新版

安装kernel-ml

设置启动项

查看系统上的所有可用内核

image.png

设置新的内核为grub2的默认版本

生成 grub 配置文件并重启

重启后

image.png

所有机器都关闭防火墙,swap,selinux

所有机器yum更新

所有机器都加载ipvs module

ipvs配置文件

加载ipvs模块

查询ipvs是否加载

所有机器都设置k8s系统参数

所有机器都设置文件最大数

所有机器都设置docker 安装

docker yum

官方脚本检查

docker官方的内核检查脚本建议(RHEL7/CentOS7: User namespaces disabled; add 'user_namespace.enable=1' to boot command line)

docker安装

配置docker

启动docker

kubeadm部署

所有机器都设置kubeadm yum

在所有节点操作

maser节点安装

node节点安装

kubeadm配置文件

在master节点操作

检查文件是否错误,忽略warning,错误的话会抛出error,没错则会输出到包含字符串kubeadm join xxx啥的

预先拉取镜像

部署master

在master节点操作

复制kubectl的kubeconfig,kubectl的kubeconfig路径默认是~/.kube/config

init的yaml信息实际上会存在集群的configmap里,我们可以随时查看,该yaml在其他node和master join的时候会使用到

设置kubectl的补全脚本

部署node

在node节点执行kubeadm join xxx啥的

打标签

role只是一个label,可以打label,想显示啥就node-role.kubernetes.io/xxxx

image.png
image.png

部署网络插件Calico

没有网络插件,所有节点都是notready

在master上操作

📎calico.yamlarrow-up-right

修改文件中的ip,默认是注释的,改成上面配置文件中的podSubnet地址

image.png

查看部署情况

Last updated