使用ansible安装方案,不需要配置翻墙,使用的是阿里云的镜像
安装pip,ansible,Jinja2 (centos环境)
安装pip
get-pip.py脚本下载地址 https://bootstrap.pypa.io/get-pip.py
python get-pip.py
安装 ansible
sudo pip install ansible
sudo pip install netaddr
sudo yum install -y git
安装Jinja2组件
sudo pip install --upgrade Jinja2
- 生成密钥/公钥(在每个节点上)
ssh-keygen -t rsa
选择一个机器做为发布机器,绑定信任关系,允许该机器无密码访问其他节点机器,也需要把本机配置公钥
例如:
Master A:
cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCXOG416HAhiKraB/vjTbz5bHw0b1ayc95KUmOxS0JKM01x7Jy7sRfPfQ0K9Je7T/nifLIH/UmFLNFzAxnlWjQcM+iMyfgOvlpfYKSJx+uwD2t6bBkhIJ1/rqx2fBPt8uRxQspQosx2CSxbaadsfsdadfdsbZ5KhVsgVlSCyqacjrX0CR3RjcL2t/Lsyt7I7nMJl4Po37O2uHShPjIrxi7ZkRtpn2sG/l6YSIGkLrBl4Gqph/K/MF9hgsQsROf6imm+quT8Py2f/6v+smsUsd/kfZGZJVDsk65M2hMiBbjNmAPYRS/G7emr958oCkTao771hkeg7h8l8X+7f+p3A9 centos@ip-172-31-29-37.ap-southeast-1.compute.internal
node B
将A 机器的公钥 cat ~/.ssh/id_rsa.pub 拷贝后添加到 B机器的authorized_keys 中
如果有多个节点依次添加
- 下载kubespray,该代码是在 kubespray 基础上修改gcr镜像为阿里云
git clone https://github.com/maomaotp/k8s-kubespray.git
- 修改集群配置信息
cd kubespray
cp inventory/inventory.example inventory/inventory
inventory 示例 该示例配置了2个节点,可以随时扩展
node1 ansible_ssh_host=172.31.1.1 ansible_user=centos
node2 ansible_ssh_host=172.31.1.2 ansible_user=centos
[kube-master]
node1
[etcd]
node1
[kube-node]
node2
[k8s-cluster:children]
kube-node
kube-master
7. 启动集群
`ansible-playbook -i inventory/inventory cluster.yml -b -v --private-key=~/.ssh/id_rsa`
8. 添加节点
`ansible-playbook -i inventory/inventory scale.yml -b -v --private-key=~/.ssh/id_rsa`
11. 安装完成后的 kubectl config文件路径 /root/.kube/config
### ansible inventory 配置文件介绍
* kube-node: 运行的kubernetes 的节点, 运行业务容器
* kube-master: kubernetes 的组件运行的节点
* etcd: etcd 服务运行的节点,etcd是kubernetes 的存储服务
### 不能使用swap 分区, 否则节点不能正常运行