参考文章:透過官方 Ansible 部署 Kubernetes
说明:由于安装软件需要在外网下载,所以此文档暂只适合能使用外网环境的主机使用,即能访问:google 的主机
1、安装主机
本次部署采用exsi6.7虚拟机Centos7,配置情况如表:
IP Address | 主机 | CPU | 内存 |
---|---|---|---|
192.168.123.121 | master1 | 1 | 2G |
192.168.123.122 | node1 | 1 | 2G |
192.168.123.123 | node2 | 1 | 2G |
2、设置主机免密设置
设置节点名称和添加hosts:
分别在各个主机中修改/etc/hostname名称和/etc/hosts里添加节点信息。
#修改为master1vim /etc/hostname#添加节点信息vim /etc/hosts192.168.123.121 master1192.168.123.122 node1192.168.123.123 node2
添加免密设置
分别在各个主机添加密钥对:
ssh-keygen -t rsa
使用master1作为发布机,进行对其他主机免密设置:
ssh master1 "cat ?>> ~/.ssh/authorized_keys" < ~/.ssh/id_rsa.pub
3、部署Kubernetes
配置安装环境,安装必要软件
yum install -y epel-releaseyum install -y ansible python-netaddr git
下载Kubernetes官方Ansible Playbook代码
git clone "https://github.com/kubernetes/contrib.git"cd contrib/ansible
配置Ansible Playbook
在inventory文件夹中新建hosts文件,并且加入以下内容:
[masters]master1[etcd:children]masters[nodes]node[1:2]
使用Ansible检查节点是否连通:
ansible -i inventory/hosts all -m pingmaster1 | SUCCESS => { ???"changed": false, ????"ping": "pong"}node2 | SUCCESS => { ???"changed": false, ????"ping": "pong"}node1 | SUCCESS => { ???"changed": false, ????"ping": "pong"
编辑inventory/group_vars/all.yml文件。修改以下内容如下:
source_type: packageManagercluster_name: cluster.kairennetworking: flannelcluster_logging: truecluster_monitoring: truekube_dash: truedns_setup: truedns_replicas: 1
修改roles/flannel/defaults/main.yaml文件,如下:
flannel_options: --iface=enp0s8
修改完成后,进入scripts目录,执行如下命令开始部署:
INVENTORY=../inventory/hosts ./deploy-cluster.sh
部署需要过一段时间,在部署的过程中ansible服务会陆续报出安装的过程,我们可以实时的了解到安装进行到具体哪一步。
安装结束后,就可以使用kubectl查看节点信息:
kubectl get nodesNAME ?????STATUS ???AGEnode1 ????Ready ????41mnode2 ????Ready ????41m
查看pod和svc的信息:
kubectl get svc ?--all-namespacesNAMESPACE ????NAME ???????????????????CLUSTER-IP ??????EXTERNAL-IP ??PORT(S) ????????????AGEdefault ??????kubernetes ?????????????10.254.0.1 ??????<none> ???????443/TCP ????????????48mkube-system ??elasticsearch-logging ??10.254.195.56 ???<none> ???????9200/TCP ???????????35mkube-system ??heapster ???????????????10.254.184.180 ??<none> ???????80/TCP ?????????????35mkube-system ??kibana-logging ?????????10.254.154.10 ???<none> ???????5601/TCP ???????????35mkube-system ??kube-dns ???????????????10.254.0.10 ?????<none> ???????53/UDP,53/TCP ??????35mkube-system ??monitoring-grafana ?????10.254.192.97 ???<none> ???????80/TCP ?????????????35mkube-system ??monitoring-influxdb ????10.254.6.37 ?????<none> ???????8083/TCP,8086/TCP ??35m
使用官方Aansible部署Kubernetes
原文地址:http://blog.51cto.com/bestlope/2148726