跳至内容

在 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 目前不支持以下功能

下一步

现在您已经拥有一个可用的 kOps 集群,请阅读 生产设置指南 中的建议,了解有关如何为生产工作负载配置 kOps 的更多信息。