使用ansible安裝方案,不需要配置翻墻,使用的是阿里云的鏡像
安裝pip,ansible,Jinja2 (centos環(huán)境)
安裝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
- 生成密鑰/公鑰(在每個節(jié)點上)
ssh-keygen -t rsa
選擇一個機器做為發(fā)布機器,綁定信任關(guān)系,允許該機器無密碼訪問其他節(jié)點機器,也需要把本機配置公鑰
例如:
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 中
如果有多個節(jié)點依次添加
- 下載kubespray,該代碼是在 kubespray 基礎上修改gcr鏡像為阿里云
git clone https://github.com/maomaotp/k8s-kubespray.git - 修改集群配置信息
cd kubespray
cp inventory/inventory.example inventory/inventory
inventory 示例 該示例配置了2個節(jié)點,可以隨時擴展
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. 添加節(jié)點
`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 的節(jié)點, 運行業(yè)務容器
* kube-master: kubernetes 的組件運行的節(jié)點
* etcd: etcd 服務運行的節(jié)點,etcd是kubernetes 的存儲服務
### 不能使用swap 分區(qū), 否則節(jié)點不能正常運行