k8s生产环境部署实践
0. 背景
利用kubeadm v1.1.15搭建k8s生产化集群
1. os系统
os系统信息如下,基于centos 7:
1.1 docker版本信息如下
1.2 kubeadm版本信息如下
1.2基本部署流程所下:
- 系统镜像:ecs机器安装
- 云盘挂载:云盘分区及挂载
- docker安装:安装docker版本17.06.02(如果os基础镜像有docker17.06.02,此步骤跳过)
- kubeadm安装:安装kubeadm v1.1.15版本,node节点版本不可高于此版本(若os镜像有,此步骤跳过)
- kubernetes初始化:master节点kubeadm init
- kubectl配置:admin.conf放至默认位置,并开放权限
- master去污:master节点去污点
- flannel安装: kubeadm init成功完成后,安装fannel插件
- namespace创建:创建业务namespace
- node label分组: 给node指定业务label
- node 节点加入: 将其他node节点加入集群
2. 部署详情
2.1 系统镜像
2.2 云盘挂载及分区
- 阿里云盘分区挂载实践参考:https://yuque.antfin.com/quniw0/hamw1b/wcy2ta
- 查看uuid和磁盘对应关系及挂载点情况(挂载点和云盘挂载映射关系请用uuid对应,设备名可能会发生变化)
2.3 docker安装(若有请跳过此步骤)
- 设置阿里云docker yum 源
- sudo yum-config-manager --add-repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
- 查看可安装Docker版本
- sudo yum list docker-ce.x86_64 --showduplicates |sort -r
- 安装docker
- sudo yum install -y --setopt=obsoletes=0 docker-ce-17.06.2.ce-l.el7.centos
2.4 kubeadm,kubectl, kubelet安装(若有请跳过此步骤)
- sudo yum install -y kubelet-1.11.5-0 --nogpgcheck
sudo yum install -y kubeadm-1.11.5-0 --nogpgcheck
sudo yum install -y kubectl-1.11.5-0 --nogpgcheck
2.5 kubernetes初始化
公司内网拉不下来一些k8s组件镜像,采用手动拉取镜像,然后docker tag的方式拉到本地
然后kubeadm init
2.5 kubectl配置
2.5 master去污
2.6 flannel 网络插件安装
这里的kube-flannel请参考:
2.7 创建业务namespace
2.8 node label分组
2.9 node 节点加入
3. 注意事项:
踩坑记录:
- 公司内网,k8s组件的一些镜像可能出现拉取失败的情况,可以docker pull之后,docker tag
- node节点的kubeadm版本要保持和master节点版本一致,最多小于等于master
- /var/lib/docker是存放镜像的地方,注意磁盘空间,磁盘不足会发生镜像驱逐的情况
- kubeadm init 前要查看kubelet和docker是否running
- 新节点加入的时候,如果kubelet拉不起来,可以先disable掉节点的kubelet,systemctl disable kubelet,然后再join
全世界的程序员们联合起来吧!