Proxmox Kubernetes 项目教程
1. 项目的目录结构及介绍
proxmox-kubernetes/
├── modules/
│ └── proxmox_ubuntu_vm/
├── scripts/
├── .gitignore
├── .pre-commit-config.yaml
├── .terraform-docs-config.yaml
├── terraform.lock.hcl
├── Makefile
├── README.md
├── example.tfvars
├── providers.tf
├── proxmox-kubernetes.png
├── variables.tf
├── vm-k8s-nodes.tf
└── vm-kubespray-host.tf
目录结构介绍
- modules/: 包含 Terraform 模块,例如
proxmox_ubuntu_vm
模块。 - scripts/: 包含项目使用的脚本文件。
- .gitignore: Git 忽略文件配置。
- .pre-commit-config.yaml: 预提交钩子配置文件。
- .terraform-docs-config.yaml: Terraform 文档生成配置文件。
- terraform.lock.hcl: Terraform 锁定文件,用于版本控制。
- Makefile: 包含项目的构建和部署命令。
- README.md: 项目说明文档。
- example.tfvars: 示例变量文件,用于配置 Terraform。
- providers.tf: Terraform 提供者配置文件。
- proxmox-kubernetes.png: 项目图标或相关图片。
- variables.tf: Terraform 变量定义文件。
- vm-k8s-nodes.tf: 定义 Kubernetes 节点的 Terraform 配置文件。
- vm-kubespray-host.tf: 定义 Kubespray 主机的 Terraform 配置文件。
2. 项目的启动文件介绍
Makefile
Makefile
文件包含项目的构建和部署命令。通过运行 make
命令,可以执行预定义的任务,例如初始化 Terraform、应用配置等。
# Makefile 示例
init:
terraform init
apply:
terraform apply
README.md
README.md
文件是项目的说明文档,通常包含项目的概述、安装步骤、使用方法等信息。
# Proxmox Kubernetes 项目
## 概述
该项目允许您使用 Terraform 和 Kubespray 在 Proxmox VE 上以声明方式创建 Kubernetes 集群。
## 安装步骤
1. 克隆仓库:
```sh
git clone https://github.com/dy2k/proxmox-kubernetes.git
- 编辑
example.tfvars
文件,更新所有必需的变量。 - 运行
make init
初始化 Terraform。 - 运行
make apply
应用配置。
## 3. 项目的配置文件介绍
### example.tfvars
`example.tfvars` 文件是一个示例变量文件,用于配置 Terraform。用户需要根据实际情况更新其中的变量值。
```hcl
# example.tfvars 示例
proxmox_api_url = "https://your-proxmox-server:8006/api2/json"
proxmox_api_token_id = "your-token-id"
proxmox_api_token_secret = "your-token-secret"
providers.tf
providers.tf
文件定义了 Terraform 的提供者配置,包括 Proxmox 和其他必要的提供者。
# providers.tf 示例
terraform {
required_providers {
proxmox = {
source = "telmate/proxmox"
version = "2.9.11"
}
}
}
provider "proxmox" {
pm_api_url = var.proxmox_api_url
pm_api_token_id = var.proxmox_api_token_id
pm_api_token_secret = var.proxmox_api_token_secret
}
variables.tf
variables.tf
文件定义了 Terraform 的变量,包括 Proxmox API 的 URL、Token ID 和 Token Secret 等。
# variables.tf 示例
variable "