使用 kubespray 部署 kubernetes 集群

Tags: kubernetes 

目录

说明

基础用法

下载 kubespray 仓库并切换到目标版本:

git clone https://github.com/kubernetes-sigs/kubespray.git
cd kubespray 
git checkout v2.24.1

准备一个 python 运行环境,并安装 kubespray 需要的 python 代码包:

python3 -m venv venv
source venv/bin/activate
pip install -r requirements.txt

inventory/ 中的每个目录是一个部署实例,从 sample 中复制一份:

cp -r inventory/sample inventory/local-demo

指定目标机器的 IP 地址,生成对应的 hosts.yml 文件:

declare -a IPS=(192.168.33.11 192.168.33.12 192.168.33.13 192.168.33.14)
CONFIG_FILE=inventory/local-demo/hosts.yml python3 contrib/inventory_builder/inventory.py ${IPS[@]}

执行结束后,生成文件 inventory/local-demo/hosts.yml。其中定义了机器列表和机器分组。

最后执行 ansible 命令,指定生成的 hosts.yaml 以及 kubespray 项目中的 cluster.yml,完成部署。

ansible-playbook -i inventory/mycluster/hosts.yaml -u $USERNAME -b -v --private-key=~/.ssh/id_rsa cluster.yml

cluster.yml 在不同机器组上部署 kubernetes 的不同组件。

自定义集群配置

kubespary 支持通过变量自定义集群的配置:

在 inventory 的每个实例目录中修改变量数值,比如 inventory/sample 中的变量配置:

$ ls inventory/sample/group_vars/all
all.yml         azure.yml       coreos.yml      docker.yml      gcp.yml         huaweicloud.yml offline.yml     upcloud.yml
aws.yml         containerd.yml  cri-o.yml       etcd.yml        hcloud.yml      oci.yml         openstack.yml   vsphere.yml

参考

  1. 李佶澳的博客
  2. Configurable Parameters in Kubespray
  3. kubespray default config
  4. Installing Kubernetes with deployment tools

kubernetes

  1. 使用 kubespray 部署 kubernetes 集群
  2. kubernetes 使用:多可用区、Pod 部署拓扑与 Topology Aware Routing
  3. kubernetes 扩展:Cloud Controller Manager
  4. kubernetes 准入:操作合法性检查(Admission Control)
  5. kubernetes 鉴权:用户操作权限鉴定(Authorization)
  6. kubernetes 认证:用户管理与身份认证(Authenticating)
  7. kubernetes 开发:代码生成工具
  8. kubernetes 扩展:operator 开发
  9. kubernetes 扩展:CRD 的使用方法
  10. kubernetes configmap 热加载,inotifywatch 监测文件触发热更新
  11. kubernetes 扩展:扩展点和方法(api/cr/plugin...)
  12. kubernetes 调度组件 kube-scheduler 1.16.3 源代码阅读指引
  13. kubernetes 代码中的 k8s.io 是怎么回事?
  14. 阅读笔记《不一样的 双11 技术,阿里巴巴经济体云原生实践》
  15. kubernetes ingress-nginx 启用 upstream 长连接,需要注意,否则容易 502
  16. ingress-nginx 的限速功能在 nginx.conf 中的对应配置
  17. kubernetes 中的容器设置透明代理,自动在 HTTP 请求头中注入 Pod 信息
  18. kubernetes ingress-nginx 的测试代码(单元测试+e2e测试)
  19. kubernetes ingress-nginx http 请求复制功能与 nginx mirror 的行为差异
  20. kubernetes 基于 openresty 的 ingress-nginx 的状态和配置查询
  21. kubernetes ingress-nginx 0.25 源代码走读笔记
  22. kubernetes ingress-nginx 的金丝雀(canary)/灰度发布功能的使用方法
  23. kubernetes 操作命令 kubectl 在 shell 中的自动补全配置
  24. kubernetes 组件 kube-proxy 的 IPVS 功能的使用
  25. kubernetes initializer 功能的使用方法: 在 Pod 等 Resource 落地前进行修改
  26. kubernetes 版本特性: 新特性支持版本和组件兼容版本
  27. kubernetes API 与 Operator: 不为人知的开发者战争(完整篇)
  28. kubernetes 1.12 从零开始(七): kubernetes开发资源
  29. kubernetes 1.12 从零开始(六): 从代码编译到自动部署
  30. kubernetes 网络方案 Flannel 的学习笔记
  31. kubernetes 1.12 从零开始(五): 自己动手部署 kubernetes
  32. kubernetes 1.12 从零开始(四): 必须先讲一下基本概念
  33. kubernetes 1.12 从零开始(三): 用 kubeadm 部署多节点集群
  34. kubernetes 1.12 从零开始(二): 用 minikube 部署开发测试环境
  35. kubernetes 1.12 从零开始(一): 部署环境准备
  36. kubernetes 1.12 从零开始(零): 遇到的问题与解决方法
  37. kubernetes 1.12 从零开始(初): 课程介绍与官方文档汇总
  38. kubernetes 集群状态监控:通过 grafana 和 prometheus
  39. 一些比较有意思的Kubernetes周边产品
  40. Borg论文阅读笔记
  41. kubelet下载pod镜像时,docker口令文件的查找顺序
  42. kubernetes 的 Client Libraries 的使用
  43. kubernetes的网络隔离networkpolicy
  44. kube-router的源码走读
  45. kubernetes 跨网段通信: 通过 calico 的 ipip 模式
  46. kubernetes的调试方法
  47. kubernetes 与 calico 的衔接过程
  48. 怎样理解 kubernetes 以及微服务?
  49. kubernetes中部署有状态的复杂分布式系统
  50. kubernetes的apiserver的启动过程
  51. kubernetes的api定义与装载
  52. kubernetes的federation部署,跨区Service
  53. kubernetes的编译、打包、发布
  54. kubernetes的第三方包的使用
  55. kubernetes的Storage的实现
  56. kubernetes 的 Apiserver 的 storage 使用
  57. kubernetes的Controller-manager的工作过程
  58. kubernetes的Client端Cache
  59. kubernetes 的 Apiserver 的工作过程
  60. kubernetes的CNI插件初始化与Pod网络设置
  61. kubernetes的Pod变更过程
  62. kubernetes的kubelet的工作过程
  63. kuberntes 的 Cmdline 实现
  64. kubernetes的Pod内挂载的Service Account的使用方法
  65. kubernetes的社区资源与项目参与方式
  66. kubernetes的Kube-proxy的转发规则分析
  67. kubernetes的基本操作
  68. kubernetes在CentOS上的集群部署
  69. kubernetes在CentOS上的All In One部署
  70. 怎样选择集群管理系统?

推荐阅读

Copyright @2011-2019 All rights reserved. 转载请添加原文连接,合作请加微信lijiaocn或者发送邮件: [email protected],备注网站合作

友情链接:  系统软件  程序语言  运营经验  水库文集  网络课程  微信网文  发现知识星球