Ansible介绍
Ansible是一种IT自动化工具。它可以配置系统,部署软件以及协调更高级的IT任务,例如持续部署,滚动更新。Ansible适用于管理企业IT基础设施,从具有少数主机的小规模到数千个实例的企业环境。Ansible也是一种简单的自动化语言,可以完美地描述IT应用程序基础结构。
使用文档: https://docs.ansible.com/
具备以下三个特点:
- 简单:减少学习成本
- 强大:协调应用程序生命周期
- 无代理:可预测,可靠和安全
- Inventory:Ansible管理的主机信息,包括IP地址、SSH端口、账号、密码等
- Modules:任务均有模块完成,也可以自定义模块,例如经常用的脚本。
- Plugins:使用插件增加Ansible核心功能,自身提供了很多插件,也可以自定义插件。例如connection插件,用于连接目标主机。
- Playbooks:“剧本”,模块化定义一系列任务,供外部统一调用。Ansible核心功能。
安装流程
- 单master架构图
- 软件版本
软件 | 版本 |
Linux操作系统 | CentOS Linux release 7.7.1908 (Core) |
Kubernetes | v1.18.6 |
Docker | 19.03.9 |
Etcd | v3.4.9 |
- 安装基础软件
[root@iZ2ze4psug6hqdxm5mda7mZ ~]#yum install -y git ansible [root@iZ2ze4psug6hqdxm5mda7mZ ~]# git clone https://github.com/cncentoscn/ansible-install-k8s.git
- 下载k8s组建包,并上传到master节点上。
- 链接: https://pan.baidu.com/s/1NVOKrSj-zf8I-8PLoIWvEw 密码: th37
[root@iZ2ze4psug6hqdxm5mda7mZ ~]# ll total 892240 -rw-r--r-- 1 root root 913648974 Dec 2 22:45 www.centoscn.vip.tar.gz [root@iZ2ze4psug6hqdxm5mda7mZ ~]# tar zxf www.centoscn.vip.tar.gz
单master集群配置
- 根据自己集群的规划,输入对应的IP地址即可。
[root@iZ2ze4psug6hqdxm5mda7mZ ~]# cd ansible-install-k8s/ [root@iZ2ze4psug6hqdxm5mda7mZ ansible-install-k8s]# vim hosts [master] # 默认Naster节点也部署Node组件 192.168.0.88 node_name=k8s-master [node] 192.168.0.89 node_name=k8s-node1 192.168.0.90 node_name=k8s-node2 [etcd] 192.168.0.88 etcd_name=etcd-1 192.168.0.89 etcd_name=etcd-2 192.168.0.90 etcd_name=etcd-3 [k8s:children] master node [newnode] #192.168.0.91 node_name=k8s-node3
- 配置自己集群中,所有包含的IP地址
[root@iZ2ze4psug6hqdxm5mda7mZ ansible-install-k8s]# vim group_vars/all.yml # 安装目录 software_dir: '/root/www.centoscn.vip' k8s_work_dir: '/opt/kubernetes' etcd_work_dir: '/opt/etcd' tmp_dir: '/tmp/k8s' # 集群网络 service_cidr: '10.0.0.0/24' cluster_dns: '10.0.0.2' # 与roles/addons/files/coredns.yaml中IP一致,并且是service_cidr中的IP pod_cidr: '10.244.0.0/16' # 与roles/addons/files/kube-flannel.yaml中网段一致 service_nodeport_range: '30000-32767' cluster_domain: 'cluster.local' # 自签证书可信任IP列表,为方便扩展,可添加多个预留IP cert_hosts: # 包含所有Master IP和service_cidr的第一个IP k8s: - 10.0.0.1 - 192.168.0.88 - 192.168.0.89 - 192.168.0.90 - 192.168.0.91 - 192.168.0.92 - 192.168.0.93 - 192.168.0.94 - 59.110.175.38 # 包含所有etcd节点IP etcd: - 192.168.0.88 - 192.168.0.89 - 192.168.0.90
- 所有准备工作完成后,开始安排,全程只需要五分钟,大伙可以喝杯咖啡了。
[root@iZ2ze4psug6hqdxm5mda7mZ ansible-install-k8s]# ansible-playbook -i hosts single-master-deploy.yml -uroot -k
- 出现这个界面,说明完美安装完成,记得保存里面的令牌内容。
- 查看节点
[root@iZ2ze4psug6hqdxm5mda7mZ ansible-install-k8s]# kubectl get nodes NAME STATUS ROLES AGE VERSION k8s-master Ready <none> 105s v1.18.6 k8s-node1 Ready <none> 105s v1.18.6 k8s-node2 Ready <none> 105s v1.18.6
环境测试和验证
- 创建nginx deployment
[root@iZ2ze4psug6hqdxm5mda7mZ ~]# kubectl create deployment web --image=nginx deployment.apps/web created [root@iZ2ze4psug6hqdxm5mda7mZ ~]# kubectl expose deployment web --port=80 --type=NodePort service/web exposed [root@iZ2ze4psug6hqdxm5mda7mZ ~]# kubectl scale deployment web --replicas=3 deployment.apps/web scaled [root@iZ2ze4psug6hqdxm5mda7mZ ~]# kubectl get pod,svc NAME READY STATUS RESTARTS AGE pod/web-5dcb957ccc-6fwhb 1/1 Running 0 42s pod/web-5dcb957ccc-dgndl 1/1 Running 0 98s pod/web-5dcb957ccc-wqmlg 1/1 Running 0 42s NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE service/kubernetes ClusterIP 10.0.0.1 <none> 443/TCP 8m24s service/web NodePort 10.0.0.208 <none> 80:32488/TCP 90s
- 来个简单的curl请求
[root@iZ2ze4psug6hqdxm5mda7mZ ~]# curl 10.0.0.208 <!DOCTYPE html> <html> <head> <title>Welcome to nginx!</title> <style> body { width: 35em; margin: 0 auto; font-family: Tahoma, Verdana, Arial, sans-serif; } </style> </head> <body> <h1>Welcome to nginx!</h1> <p>If you see this page, the nginx web server is successfully installed and working. Further configuration is required.</p> <p>For online documentation and support please refer to <a href="http://nginx.org/">nginx.org</a>.<br/> Commercial support is available at <a href="http://nginx.com/">nginx.com</a>.</p> <p><em>Thank you for using nginx.</em></p> </body> </html>
- WEB页面验证
Dashboard
- 访问https://101.200.81.75:30001
继续阅读
- 我的QQ
- QQ扫一扫
-
- 我的头条
- 头条扫一扫
-
评论