实例学习Ansible系列:单机版快速安装

在前文创建的多个role的基础之上,这篇文章介绍一下使用Ansible进行kubernetes的快速方法。

所用到的Ansible基础知识:

Ansible中可以非常方便的调用多个role

创建单机版kubernetes的基础知识

创建单机版kubernetes,顺次使用如下功能的role即可完成

  • 事前准备:证书以及系统设定等
  • etcd服务:设定和启动etcd服务
  • master节点服务:启动kube-apiserver/kube-controller-manager/kube-scheduler
  • flannel服务:启动flannel服务
  • docker服务:启动docker服务
  • node节点服务:启动node节点的kube-proxy和kubelet服务并自动进行csr的approve

依赖事项:

  • 将down的role中下载的内容展开为/tmp/binary/的方式
  • 如果希望修改离线目录,只需要修改common_vars.yml中的var_src_binary即可
  • 单机安装版需要设定var_all_in_one_hostip的IP地址,这是唯一需要手动设定的内容
  • 事前本机器的ssh是通的

示例代码

---
- hosts: all-in-one
  vars_files:
    - "common_vars.yml"
  gather_facts: no
  roles:
    - role: clean
    - role: prepare
    - role: etcd
    - role: master
    - role: flannel
    - role: docker
    - role: node

注:此处示例代码仅用于介绍如何调用多个role来完成稍微复杂的功能。

执行示例

[root@host131 ansible]# ansible-playbook 10.all-in-one.yml 

PLAY [all-in-one] ***********************************************************************************************************************************

TASK [clean : stop etcd service] ********************************************************************************************************************
changed: [localhost]
...省略
TASK [node : wait for kubelet csr requestor] ********************************************************************************************************
changed: [localhost]

TASK [node : auto approve kubelet csr requestor] ****************************************************************************************************
changed: [localhost]

PLAY RECAP ******************************************************************************************************************************************
localhost                  : ok=87   changed=80   unreachable=0    failed=0   

[root@host131 ansible]# 
[root@host131 ansible]# kubectl get nodes -o wide
NAME              STATUS   ROLES    AGE   VERSION   INTERNAL-IP       EXTERNAL-IP   OS-IMAGE                KERNEL-VERSION          CONTAINER-RUNTIME
192.168.163.131   Ready       52s   v1.15.0   192.168.163.131           CentOS Linux 7 (Core)   3.10.0-957.el7.x86_64   docker://18.9.7
[root@host131 ansible]# 

ansible vs shell

和Shell脚本的比较可以参看,因为本系列示例主要用于说明类似功能使用Ansible如何实现,详细的K8S相关的设定可参看:

  • https://liumiaocn.blog.csdn.net/article/details/88882893

代码路径

  • https://github.com/liumiaocn/easypack/tree/master/k8s/ansible

其他Ansible内容

  • https://liumiaocn.blog.csdn.net/article/details/87273800

你可能感兴趣的:(#,深入浅出kubernetes,#,实例学习Ansible系列,Ansible,kubernetes,单机安装,role)