使用官方Aansible部署Kubernetes
2018-07-22 19:58
543 查看
一、部署环境
参考文章:透過官方 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里添加节点信息。
#修改为master1 vim /etc/hostname #添加节点信息 vim /etc/hosts 192.168.123.121 master1 192.168.123.122 node1 192.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-release yum 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 ping master1 | SUCCESS => { "changed": false, "ping": "pong" } node2 | SUCCESS => { "changed": false, "ping": "pong" } node1 | SUCCESS => { "changed": false, "ping": "pong"
编辑inventory/group_vars/all.yml文件。修改以下内容如下:
source_type: packageManager cluster_name: cluster.kairen networking: flannel cluster_logging: true cluster_monitoring: true kube_dash: true dns_setup: true dns_replicas: 1
修改roles/flannel/defaults/main.yaml文件,如下:
flannel_options: --iface=enp0s8
修改完成后,进入scripts目录,执行如下命令开始部署:
INVENTORY=../inventory/hosts ./deploy-cluster.sh
部署需要过一段时间,在部署的过程中ansible服务会陆续报出安装的过程,我们可以实时的了解到安装进行到具体哪一步。
安装结束后,就可以使用kubectl查看节点信息:
kubectl get nodes NAME STATUS AGE node1 Ready 41m node2 Ready 41m
查看pod和svc的信息:
kubectl get svc --all-namespaces NAMESPACE NAME CLUSTER-IP EXTERNAL-IP PORT(S) AGE default kubernetes 10.254.0 5b4 .1 <none> 443/TCP 48m kube-system elasticsearch-logging 10.254.195.56 <none> 9200/TCP 35m kube-system heapster 10.254.184.180 <none> 80/TCP 35m kube-system kibana-logging 10.254.154.10 <none> 5601/TCP 35m kube-system kube-dns 10.254.0.10 <none> 53/UDP,53/TCP 35m kube-system monitoring-grafana 10.254.192.97 <none> 80/TCP 35m kube-system monitoring-influxdb 10.254.6.37 <none> 8083/TCP,8086/TCP 35m
Targeted runs
可以使用tag的方式指定只部署特定服务,比如:指定部署Etcd。
INVENTORY=../inventory/hosts ./deploy-cluster.sh --tags=etcd
相关文章推荐
- 使用Ansible部署LAMP环境
- 使用ansible快速部署一个主流的Web架构
- 使用Rancher的RKE快速部署Kubernetes集群
- 使用 Ansible 安装部署 TiDB
- 在Ubuntu 14.04上使用Ansible部署PHP应用
- Ansible自动化运维工具部署及使用 推荐
- 使用Kubespray在虚拟机上部署Kubernetes
- 使用Ansible进行项目的自动部署(Tomcat、Weblogic)
- Kubernetes用户指南(三)--在生产环境中使用Pod来工作、管理部署
- Ansible部署及使用
- 使用kubespray部署高可用kubernetes集群
- 落地案例|使用 Kubernetes 重新部署全球最大的教育公司
- 在Kubernetes集群中使用Redis部署PHP留言簿应用程序
- Kubernetes部署ELK并使用Filebeat收集容器日志
- 使用脚本部署kubernetes集群
- 使用Ansible部署LAMP环境
- 使用 kubeadm 安装部署 kubernetes 1.9
- 离线部署 kubernetes1.9(使用kubeadm)
- (部署)使用kubernetes的deployment进行RollingUpdate