在 Hetzner Cloud 上入门使用 kOps ¶
警告: kOps 上的 Hetzner Cloud 支持目前处于beta阶段,这意味着它状态良好,可以用于生产环境。但是,它不像稳定云提供商那样经过严格测试,并且可能缺少某些功能。
要求 ¶
- kOps 版本 >= 1.24
- kubectl 版本 >= 1.23
- Hetzner Cloud 帐户
- Hetzner Cloud 令牌
- SSH 公钥和私钥
- 与 S3 兼容的对象存储(如 MinIO)
环境变量 ¶
设置以下环境变量非常重要
export HCLOUD_TOKEN=<token>
export S3_ENDPOINT=<endpoint>
export S3_ACCESS_KEY_ID=<acces-key>
export S3_SECRET_ACCESS_KEY=<secret-key>
export KOPS_STATE_STORE=s3://<bucket-name>
一些与 S3 兼容的存储可能还需要设置区域
export S3_REGION=<region>
创建单主集群 ¶
在以下示例中,example.k8s.local
是一个 基于八卦的 DNS 集群名称。
# create a ubuntu 20.04 + calico cluster in fsn1
kops create cluster --name=my-cluster.example.k8s.local \
--ssh-public-key=~/.ssh/id_rsa.pub --cloud=hetzner --zones=fsn1 \
--image=ubuntu-20.04 --networking=calico --network-cidr=10.10.0.0/16
kops update cluster my-cluster.example.k8s.local --yes
# create a ubuntu 20.04 + calico cluster in fsn1 with CPU optimized servers
kops create cluster --name=my-cluster.example.k8s.local \
--ssh-public-key=~/.ssh/id_rsa.pub --cloud=hetzner --zones=fsn1 \
--image=ubuntu-20.04 --networking=calico --network-cidr=10.10.0.0/16 \
--node-size cpx31
kops update cluster --name=my-cluster.example.k8s.local --yes
# update a cluster
kops update cluster --name=my-cluster.example.k8s.local
kops update cluster --name=my-cluster.example.k8s.local --yes
kops rolling-update cluster --name=my-cluster.example.k8s.local
kops rolling-update cluster --name=my-cluster.example.k8s.local --yes
# validate a cluster
kops validate cluster --name=my-cluster.example.k8s.local
# delete a cluster
kops delete cluster --name=my-cluster.example.k8s.local
kops delete cluster --name=my-cluster.example.k8s.local --yes
# export kubecfg
# See https://kops.kubernetes.ac.cn/cli/kops_export_kubeconfig/#examples.
# update a cluster
# See https://kops.kubernetes.ac.cn/operations/updates_and_upgrades/#manual-update.
仍在开发中的功能 ¶
Hetzner Cloud 的 kOps 目前不支持以下功能
- 使用 集群自动扩展器 的自动扩展
- 使用 terraform-provider-hcloud 的 Terraform 支持
下一步 ¶
现在您已经拥有一个可用的 kOps 集群,请阅读 生产设置指南 中的建议,了解有关如何为生产工作负载配置 kOps 的更多信息。