1.查阅K8S+docker的版本号对应关系
1.1.打开github;搜索kubernetes项目(github地址:https://github.com/)
1.2.打开项目中CHANGELOG文件夹,其中就有CHANGELOG-XXX.md版本号文件,如下截图所示:
1.3.打开kubernetes版本号文件,ctrl+f搜索"docker version",便可以查询到所有可用版本号如下截图所示:
2.将所需的安装包下载到本地(进行本地化安装)
3.机器的准备(其中包括机器版本及配置)
3.1.查看linux机器版本号命令:cat /proc/version
我的版本号:Linux version 3.10.0-1062.18.1.el7.x86_64 (mockbuild@kbuilder.bsys.centos.org) (gcc version 4.8.5 20150623 (Red Hat 4.8.5-39) (GCC) ) #1 SMP Tue Mar 17 23:49:17 UTC 2020
3.2.机器的配置
cpu:4C 内存:4G 硬盘:32G
查看cpu(逻辑):cat /proc/cpuinfo | grep ‘processor’ | wc -l
查看cpu(物理):cat /proc/cpuinfo | grep ‘physical id’ | sort | uniq | wc -l
查看内存总数:cat /proc/meminfo | grep MemTotal
查看硬盘大小:df -h
4.环境的准备
4.1. 设置主机名与时区
timedatectl set-timezone Asia/Shanghai #都要执行
hostnamectl set-hostname master #194执行
hostnamectl set-hostname node1 #195执行
hostnamectl set-hostname node2 #196执行
4.2. 添加hosts网络主机配置,三台虚拟机都要设置
vim /etc/hosts
192.168.10.194 master
192.168.10.195 node1
192.168.10.196 node2
4.3. 关闭防火墙,三台虚拟机都要设置,生产环境跳过这一步
sed -i ‘s/SELINUX=enforcing/SELINUX=disabled/g’ /etc/selinux/config
setenforce 0
systemctl disable firewalld
systemctl stop firewalld
5.K8S的安装及加载K8S镜像
5.1. 将镜像包上传至服务器每个节点
mkdir /usr/local/k8s-install
cd /usr/local/k8s-install
XFTP上传安装文件
5.2. 按每个Centos上安装Docker
tar -zxvf docker-ce-18.09.tar.gz
cd docker
yum localinstall -y *.rpm
systemctl start docker
systemctl enable docker
5.3. 确保从cgroups均在同一个从groupfs
#cgroups是control groups的简称,它为Linux内核提供了一种任务聚集和划分的机制,通过一组参数集合将一些任务组织成一个或多个子系统。
#cgroups是实现IaaS虚拟化(kvm、lxc等),PaaS容器沙箱(Docker等)的资源管理控制部分的底层基础。
#子系统是根据cgroup对任务的划分功能将任务按照一种指定的属性划分成的一个组,主要用来实现资源的控制。
#在cgroup中,划分成的任务组以层次结构的形式组织,多个子系统形成一个数据结构中类似多根树的结构。cgroup包含了多个孤立的子系统,每一个子系统代表单一的资源
docker info | grep cgroup
如果不是groupfs,执行下列语句
c
5.4. 安装kubeadm
kubeadm是集群部署工具
cd /usr/local/k8s-install/kubernetes-1.14tar -zxvf kube114-rpm.tar.gzcd kube114-rpmyum localinstall -y *.rpm
5.5. 关闭交换区
swapoff -avi /etc/fstab#swap一行注释
5.6. 配置网桥
c
5.7. 通过镜像安装k8s
cd /usr/local/k8s-install/kubernetes-1.14docker load -i k8s-114-images.tar.gzdocker load -i flannel-dashboard.tar.gz
6.安装kubeadm并创建K8S集群
6.1. master主服务器配置
kubeadm init --kubernetes-version=v1.14.1 --pod-network-cidr=10.244.0.0/16mkdir -p $HOME/.kubesudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/configsudo chown ( i d − u ) : (id -u):(id−u):(id -g) $HOME/.kube/configkubectl get nodes#查看存在问题的podkubectl get pod --all-namespaces#设置全局变量#安装flannel网络组件kubectl create -f kube-flannel.yml
6.2. 加入NODE节点
kubeadm join 192.168.10.194:6443 --token 0b15nw.w9xq58pcttqq647k–discovery-token-ca-cert-hash sha256:23db3094dc9ae1335b25692717c40e24b1041975f6a43da9f43568f8d0dbac72
如果忘记
在master 上执行kubeadm token list 查看 ,在node上运行(如下ip、端口、token都是master对应的值,切记)
kubeadm join 192.168.10.194:6443 --token 0b15nw.w9xq58pcttqq647k --discovery-token-unsafe-skip-ca-verificationkubectl get nodes
6.3. Master开启仪表盘
kubectl apply -f kubernetes-dashboard.yamlkubectl apply -f admin-role.yamlkubectl apply -f kubernetes-dashboard-admin.rbac.yamlkubectl -n kube-system get svchttp://192.168.10.194:32000 访问
7.遇到的坑
7.1.最开始在自己本地的虚拟机进行安装的由于分配的cpu为1,结果执行6.1步骤的时候报错了,错误提示很明确最少需要2cpu
7.2.后来在以上机器配置中进行5.2中安装docker遇到如下版本号冲突问题,于是百度下载对应版本号的包替换即可(让版本号一致)
错误:软件包:policycoreutils-python-2.5-29.el7_6.1.x86_64 (/policycoreutils-python-2.5-29.el7_6.1.x86_64)
需要:policycoreutils = 2.5-29.el7_6.1
已安装: policycoreutils-2.5-33.el7.x86_64 (@anaconda)
policycoreutils = 2.5-33.el7
可用: policycoreutils-2.5-34.el7.x86_64 (base)
policycoreutils = 2.5-34.el7
错误:软件包:audit-libs-python-2.8.4-4.el7.x86_64 (/audit-libs-python-2.8.4-4.el7.x86_64)
需要:audit-libs(x86-64) = 2.8.4-4.el7
已安装: audit-libs-2.8.5-4.el7.x86_64 (@anaconda)
audit-libs(x86-64) = 2.8.5-4.el7
7.3.执行6.3加入node节点的时候,在node机器输入的命令一直是node机器的ip结果总是报错;后来才恍然大悟,需要用master机器的ip
7.4.执行6.3加入node节点的时候,token过期,导致无法加入
如果遇到如下问题,可能是token过期了,需要执行 kubeadm token create重新获取token