Kubernetes 二进制部署
部署方式
ansible-playbook控制整体架构部署逻辑
k8s、harbor、docker、etcd、flannel、cfssl等均采用二进制方式部署
部署思路
ansible整体目录结构
[root@node1 ~]# tree starx-k8s-deploy/
starx-k8s-deploy/
├── ansible.cfg
├── install.yml
├── inventory
│ ├── group_vars
│ │ └── k8s_hosts
│ │ └── main.yml
│ └── hosts.ini
├── playbooks
│ ├── files
│ │ ├── centos7.tar.gz ## 制作的私有yum
│ │ ├── cfssl.tar.gz
│ │ ├── cni.tar.gz
│ │ ├── etcd-v3.4.16.tar.gz
│ │ ├── harbor.tar.gz
│ │ ├── k8s_master.tar.gz
│ │ └── k8s_node.tar.gz
│ ├── install_coredns.yml
│ ├── install_docker.yml
│ ├── install_etcd.yml
│ ├── install_flannel.yml
│ ├── install_harbor.yml
│ ├── install_helm.yml
│ ├── install_images.yml
│ ├── install_k8s_master.yml
│ ├── install_k8s_node.yml
│ ├── install_system_init.yml
│ └── roles
│ ├── cfssl
│ │ └── tasks
│ │ ├── cfssl.yml
│ │ └── main.yml
│ ├── chrony
│ │ ├── files
│ │ │ └── chrony.keys
│ │ ├── handlers
│ │ │ └── main.yml
│ │ ├── tasks
│ │ │ └── main.yml
│ │ └── templates
│ │ ├── chrony_agent.conf
│ │ └── chrony_server.conf
│ ├── coredns
│ │ ├── defaults
│ │ │ └── main.yml
│ │ ├── files
│ │ │ └── coredns.yml
│ │ └── tasks
│ │ └── main.yml
│ ├── docker
│ │ ├── defaults
│ │ │ └── main.yml
│ │ ├── files
│ │ │ └── docker.service
│ │ ├── handlers
│ │ │ └── main.yml
│ │ ├── tasks
│ │ │ └── main.yml
│ │ └── templates
│ │ └── daemon.json.j2
│ ├── etcd
│ │ ├── defaults
│ │ │ └── main.yml
│ │ ├── files
│ │ │ ├── ca-config.json
│ │ │ ├── ca-csr.json
│ │ │ ├── ca-key.pem
│ │ │ └── ca.pem
│ │ ├── handlers
│ │ │ └── main.yml
│ │ ├── tasks
│ │ │ └── main.yml
│ │ └── templates
│ │ ├── check_etcd_cluster.sh.j2
│ │ ├── etcd.conf.j2
│ │ ├── etcd-csr.json.j2
│ │ └── etcd.service.j2
│ ├── flannel
│ │ ├── defaults
│ │ │ └── main.yml
│ │ ├── files
│ │ │ ├── ca-config.json
│ │ │ ├── ca-csr.json
│ │ │ ├── ca-key.pem
│ │ │ ├── ca.pem
│ │ │ └── flannel-csr.json
│ │ ├── handlers
│ │ │ └── main.yml
│ │ ├── tasks
│ │ │ └── main.yml
│ │ └── templates
│ │ └── flanneld.service.j2
│ ├── harbor
│ │ ├── defaults
│ │ │ └── main.yml
│ │ ├── tasks
│ │ │ ├── harbor.yml
│ │ │ ├── main.yml
│ │ │ └── project.yml
│ │ └── templates
│ │ └── harbor.yml.j2
│ ├── helm
│ │ └── tasks
│ │ ├── helm.yml
│ │ ├── main.yml
│ │ └── plugin.yml
│ ├── k8s_master
│ │ ├── defaults
│ │ │ └── main.yml
│ │ ├── files
│ │ │ ├── admin.json
│ │ │ ├── audit-policy.yaml
│ │ │ ├── ca-config.json
│ │ │ ├── ca-csr.json
│ │ │ ├── ca-key.pem
│ │ │ ├── ca.pem
│ │ │ └── k8s-rbac.yml
│ │ ├── handlers
│ │ │ └── main.yml
│ │ ├── tasks
│ │ │ ├── apiserver.yml
│ │ │ ├── global_cmd.yml
│ │ │ ├── kube-admin.yml
│ │ │ ├── kube-controller-manager.yml
│ │ │ ├── kube-scheduler.yml
│ │ │ ├── main.yml
│ │ │ └── prepare.yml
│ │ └── templates
│ │ ├── apiserver.json.j2
│ │ ├── create_kube_admin.sh.j2
│ │ ├── create_kube_controller_manager.kubeconfig.sh.j2
│ │ ├── create_kube_scheduler.kubeconfig.sh.j2
│ │ ├── k8s-master.sh.j2
│ │ ├── kube-apiserver.conf.j2
│ │ ├── kube-apiserver.service.j2
│ │ ├── kube-controller-manager.conf.j2
│ │ ├── kube-controller-manager.json.j2
│ │ ├── kube-controller-manager.service.j2
│ │ ├── kube-scheduler.conf.j2
│ │ ├── kube-scheduler.json.j2
│ │ ├── kube-scheduler.service.j2
│ │ └── token.csv.j2
│ ├── k8s_node
│ │ ├── defaults
│ │ │ └── main.yml
│ │ ├── files
│ │ │ ├── ca-config.json
│ │ │ ├── ca-csr.json
│ │ │ ├── ca-key.pem
│ │ │ ├── ca.pem
│ │ │ └── kube-proxy-csr.json
│ │ ├── handlers
│ │ │ └── main.yml
│ │ ├── tasks
│ │ │ ├── cni.yml
│ │ │ ├── global_cmd.yml
│ │ │ ├── kubelet.yml
│ │ │ ├── kube-proxy.yml
│ │ │ ├── main.yml
│ │ │ └── prepare.yml
│ │ └── templates
│ │ ├── create_kubelet.sh.j2
│ │ ├── create_kube_proxy.kubeconfig.sh.j2
│ │ ├── k8s-node.sh.j2
│ │ ├── kubelet.conf.j2
│ │ ├── kubelet.service.j2
│ │ ├── kubelet.yaml.j2
│ │ ├── kube-proxy.conf.j2
│ │ ├── kube-proxy.service.j2
│ │ └── kube-proxy.yaml.j2
│ ├── load_images
│ │ ├── defaults
│ │ │ └── main.yml
│ │ └── tasks
│ │ ├── load.yml
│ │ ├── login.yml
│ │ ├── main.yml
│ │ └── prepare.yml
│ ├── supervisor
│ │ ├── files
│ │ │ ├── supervisord.conf
│ │ │ └── supervisord.service
│ │ ├── handlers
│ │ │ └── main.yml
│ │ └── tasks
│ │ └── main.yml
│ └── system_init
│ ├── defaults
│ │ └── main.yml
│ ├── files
│ │ ├── 20-nproc.conf
│ │ ├── config
│ │ ├── id_rsa
│ │ ├── id_rsa.pub
│ │ ├── master_chrony.conf
│ │ └── sysctl.conf
│ ├── tasks
│ │ ├── disable_firewall.yml
│ │ ├── hostname.yml
│ │ ├── main.yml
│ │ ├── repos.yml
│ │ ├── ssh_key.yml
│ │ └── system_optimization.yml
│ └── templates
│ ├── hosts.j2
│ └── local.repo.j2
├── pre_ansible.sh
├── README
└── test-nginx.yml
获取ansible部署代码可留言