写一篇kubeasz离线部署k8s的详细操作手册
时间: 2024-06-12 15:05:54 浏览: 178
Kubeasz 是一个基于 Ansible 的 Kubernetes 离线部署工具,可以帮助用户快速部署 Kubernetes 集群。下面是 Kubeasz 离线部署 Kubernetes 的详细操作手册。
1. 准备工作
1.1 下载 Kubeasz
从 Kubeasz 的 GitHub 仓库下载最新版本的代码:
```sh
git clone https://github.com/easzlab/kubeasz.git
```
1.2 安装 Ansible
在部署机器上安装 Ansible:
```sh
sudo apt install ansible -y
```
1.3 准备离线部署包
Kubeasz 支持离线部署,因此需要提前准备好 Kubernetes 离线部署包。可以从 Kubernetes 官方网站下载最新版本的离线部署包,然后将其放置到部署机器的一个目录下。
2. 配置
2.1 配置 inventory 文件
在 Kubeasz 的根目录下找到 `inventory.ini` 文件,修改其中的节点信息,例如:
```ini
[kube-master]
192.168.1.1
[kube-node]
192.168.1.2
192.168.1.3
[k8s-cluster:children]
kube-master
kube-node
```
其中 `kube-master` 组中为 Kubernetes 的主节点,`kube-node` 组中为 Kubernetes 的工作节点。
2.2 配置 group_vars 文件
在 Kubeasz 的根目录下找到 `group_vars/all.yml` 文件,根据实际情况修改其中的配置参数,例如:
```yaml
ansible_user: root
ansible_ssh_private_key_file: ~/.ssh/id_rsa
ansible_ssh_port: 22
ansible_become: true
# Kubernetes version
kube_version: "1.22.2"
# Kubernetes network plugin
kube_network_plugin: "calico"
# Kubernetes dashboard
kube_dashboard: true
```
其中 `kube_version` 为 Kubernetes 的版本号,`kube_network_plugin` 为 Kubernetes 的网络插件,`kube_dashboard` 为是否安装 Kubernetes Dashboard。
2.3 配置 kubeasz.yml 文件
在 Kubeasz 的根目录下找到 `kubeasz.yml` 文件,根据实际情况修改其中的配置参数,例如:
```yaml
# Kubernetes version
kube_version: "1.22.2"
# Docker version
docker_version: "20.10.8"
# Kubernetes network plugin
kube_network_plugin: "calico"
# Kubernetes dashboard
kube_dashboard: true
# Etcd
etcd_data_dir: "/var/lib/etcd"
etcd_port: 2379
etcd_backup_dir: "/opt/etcd-backup"
# Kubernetes HA
kube_ha: true
kube_apiserver_count: 3
kube_controller_manager_count: 3
kube_scheduler_count: 3
kube_etcd_count: 3
# Kubernetes addon
kube_addon: true
kube_addon_svc_cidr: "10.96.0.0/12"
kube_addon_dns_domain: "cluster.local"
```
其中 `kube_ha` 为是否启用 Kubernetes 的高可用模式,`kube_apiserver_count`、`kube_controller_manager_count`、`kube_scheduler_count`、`kube_etcd_count` 分别为 Kubernetes 的 API Server、Controller Manager、Scheduler、Etcd 的数量。
3. 执行部署
在 Kubeasz 的根目录下执行以下命令开始部署:
```sh
ansible-playbook -i inventory.ini kubeasz.yml
```
部署过程中可能需要输入 sudo 密码和 SSH 密码。部署完成后,可以通过以下命令检查 Kubernetes 集群状态:
```sh
kubectl get nodes
```
如果能够看到节点信息,则表示 Kubernetes 集群已经部署成功。
4. 后续操作
4.1 部署 Kubernetes Dashboard
如果在配置文件中启用了 Kubernetes Dashboard,则可以通过以下命令部署:
```sh
kubectl apply -f https://raw.githubusercontent.com/kubernetes/dashboard/v2.4.0/aio/deploy/recommended.yaml
```
然后可以通过以下命令启动代理:
```sh
kubectl proxy
```
然后访问 `http://localhost:8001/api/v1/namespaces/kubernetes-dashboard/services/https:kubernetes-dashboard:/proxy/` 即可进入 Kubernetes Dashboard。
4.2 部署 Calico
如果在配置文件中选择了 Calico 作为 Kubernetes 的网络插件,则可以通过以下命令部署:
```sh
kubectl apply -f https://docs.projectcalico.org/manifests/calico.yaml
```
然后可以通过以下命令检查 Calico 的状态:
```sh
kubectl get pods -n kube-system -l k8s-app=calico-node
```
如果能够看到 `calico-node` 的 Pod,则表示 Calico 已经部署成功。
至此,Kubeasz 离线部署 Kubernetes 的操作就完成了。
阅读全文