写在前面
本文档描述过程是基于https://github.com/easzlab/kubeasz进行kubernetes集群的部署。使用版本是2.1.0。
环境准备
本文档主要是在CentOS7.5环境下进行部署,前期进行了Linux内核的升级(升级到4.4)和历史软件环境的清理,此步骤可跳过。集群节点采用三台服务器,一台做master,两台做node。IP地址如下:
10.20.12.6(master节点)
10.20.12.7(node节点)
10.20.12.8(node节点)
同时,需要master节点和node节点上已经安装了pip和netaddr。安装步骤如下
安装pip和netaddr
yum install -y epel-release
yum -y install python-pip python-wheel
pip install --upgrade pip
pip install netaddr
安装Ansible
内核版本升级到4.4之后,执行如下命令进行软件包的更新和ansible的安装。Ansible的版本是2.9.1
yum -y update
yum -y install ansible
免密登录配置
ssh-keygen -t rsa -b 2048 -N '' -f ~/.ssh/id_rsa
ssh-copy-id $IPs #$IPs为所有节点地址包括自身,按照提示输入yes 和root密码
离线安装包下载
登录到master节点(10.20.12.6),执行如下命令:
export release=2.1.0
curl -C- -fLO --retry 3 https://github.com/easzlab/kubeasz/releases/download/${release}/easzup
chmod +x ./easzup
./easzup -D
执行成功后,所有文件均已整理好放入目录/etc/ansilbe,只要把该目录整体复制到任何离线的机器上,即可开始安装集群,离线文件包括:
kubeasz 项目代码 --> /etc/ansible
kubernetes 集群组件二进制 --> /etc/ansible/bin
其他集群组件二进制(etcd/CNI等)--> /etc/ansible/bin
操作系统基础依赖软件包(haproxy/ipvsadm/ipset/socat等)--> /etc/ansible/down/packages
集群基本插件镜像(coredns/dashboard/metrics-server等)--> /etc/ansible/down
离线文件不包括:
管理端 ansible 安装,但可以使用 kubeasz 容器运行 ansible 脚本
其他更多 kubernetes 插件镜像
配置集群参数:
必要配置:cd /etc/ansible && cp example/hosts.multi-node hosts, 然后实际情况修改此hosts文件
可选配置,初次使用可以不做修改,详见配置指南
验证ansible 安装:ansible all -m ping 正常能看到节点返回 SUCCESS
执行安装脚本
ansible-playbook 90.setup.yml
执行完效果如下:
安装完成之后在node节点执行kubectl命令时会发生如下情况:
解决方法如下:
首先将master节点下的配置文件远程复制到node节点,命令如下:
scp ~/.kube/config 10.20.12.7:/etc/kubernetes/admin.conf
scp ~/.kube/config 10.20.12.8:/etc/kubernetes/admin.conf
登录到10.20.12.7/8。执行如下命令:
echo "export KUBECONFIG=/etc/kubernetes/admin.conf" >> ~/.bash_profile
source ~/.bash_profile
执行命令验证如下:
至此,单master节点的kubernetes集群安装结束,多master节点的集群搭建可以在hosts里面对master配置增加相应的节点地址。