Kubespray
Kubespray 是一个基于 Ansible 的 Kubernetes 集群部署工具。在 Kubernetes 官方文档中推荐使用
下载仓库
kubespray的不同版本以不同的tag发布,以v2.27.0为例,下载仓库:
~ git clone -b v2.27.0 https://github.com/kubernetes-sigs/kubespray.git
从download.yaml文件中可以看到当前支持的版本,也可以从release页面查看
...
pod_infra_supported_versions:
v1.31: "3.10"
v1.30: "3.9"
v1.29: "3.9"
...
修改部署集群配置
首先根据示例的inventory复制一份,并进行修改
~ cp -rfp inventory/sample inventory/cluster01
修改集群主机信息
默认ansible以inventory.ini格式管理集群主机,可以修改为yaml格式,以单master+单node为例
inventory/cluster01/hosts.yaml
all:
hosts:
master1:
ansible_host: 10.92.162.228
worker1:
ansible_host: 10.92.162.229
children:
kube_control_plane:
hosts:
master1:
kube_node:
hosts:
worker1:
etcd:
hosts:
master1:
k8s_cluster:
children:
kube_control_plane:
kube_node:
修改集群配置
~ vim inventory/cluster01/group_vars/k8s_cluster/k8s-cluster.yml
## 修改k8s版本,默认是v1.31.4(可以修改成当前版本支持范围内的其他版本)
kube_version: v1.30.6
## 修改网络插件,默认是calico,可以修改为其他网络插件
kube_network_plugin: cilium
## 修改service和pod CIDR
kube_service_addresses: 172.16.0.0/12
kube_pods_subnet: 192.168.64.0/18
## 修改kubelet最大pod数和网络节点前缀
kubelet_max_pods: 110
kube_network_node_prefix: 25
## 修改集群名称
cluster_name: cluster01
## 启用证书自动续期
auto_renew_certificates: true
## 修改证书自动续期时间,默认是每月1号03:00
auto_renew_certificates_systemd_calendar: "Mon *-*-1,2,3,4,5,6,7 03:{{ groups['kube_control_plane'].index(inventory_hostname) }}0:00"
修改集群addons配置
~ vim inventory/cluster01/group_vars/k8s_cluster/addons.yml
## 启用metrics-server,其他按需启用
metrics_server_enabled: true
helm_enabled: false
registry_enabled: false
local_path_provisioner_enabled: false
local_volume_provisioner_enabled: false
cephfs_provisioner_enabled: false
rbd_provisioner_enabled: false
gateway_api_enabled: false
ingress_nginx_enabled: false
ingress_publish_status_address: ""
ingress_alb_enabled: false
cert_manager_enabled: false
metallb_enabled: false
metallb_speaker_enabled: "{{ metallb_enabled }}"
metallb_namespace: "metallb-system"
argocd_enabled: false
krew_enabled: false
krew_root_dir: "/usr/local/krew"
kube_vip_enabled: false
node_feature_discovery_enabled: false