Skip to main content

RKE

  • 是什么
    • K8S 集群安装器
  • 配置项
  • 系统镜像 k8s_rke_system_images.go
  • K8S Release Note
  • 注意
    • 非常建议使用私有仓库
      • air-gap 需要 g 级别的压缩包 - 非常慢
    • 注意开启 SSH 的 AllowTcpForwarding
    • 注意节点需要一些提前配置 - 参考 k8s-prepare
  • 安装后需要做的事情
    • 添加 PV - 例如 nfs-client-provisioner
      • 不添加会导致需要持久存储的无法拿到 PVC
    • 添加 LoadBalancer 控制器 - 例如 metallb
      • 不添加会导致 LoadBalancer 拿不到 ip - 例如 istio-ingresgateway (rancher 可配置使用 NodePort)

安装#

# 下载最新版rke_version=$(curl -s https://api.github.com/repos/rancher/rke/releases/latest | jq -r .tag_name)for f in rke_{darwin-amd64,linux-amd64}; do curl -LO https://github.com/rancher/rke/releases/download/${rke_version}/$f; chmod +x $f; done;# 映射为 rke 命令ln -fs rke_$(uname -o | grep -qi darwin && echo darwin-amd64 || echo linux-amd64) rke# 查看当前版本./rke -v# 别名后就不需要 ./alias rke=$PWD/rkerke -v
# 查看所有 rancher 版本rke config --list-version --all# 系统镜像# 系统镜像不包含 quay 和 gcr - 已经映射为 rancher 下的镜像rke config --system-images
# 如果使用私有仓库可以提前缓存系统镜像 - 例如 registry.wener.merke config --system-images | tail -n +2 | xargs -I {} -n 1 docker pull registry.wener.me/{}
# 配置好 clutser.yml
# 执行安装 - 可重复执行 - 可添加节点后执行# 默认使用 clutser.yml 文件rke up --config cluster.yml

运维#

# 一次性备份 etcdrke etcd snapshot-save --name <SNAPSHOT.db> --config rancher-cluster.yml# 一次性备份到 s3rke etcd snapshot-save --config rancher-cluster.yml --name snapshot-name  \--s3 --access-key S3_ACCESS_KEY --secret-key S3_SECRET_KEY \--bucket-name s3-bucket-name  --s3-endpoint  s3.amazonaws.com \--folder folder-name

配置#

# 集群名字 - 建议更改 - 默认 localcluster_name: center# 安装目录 - 会记录 etcd 快照 /opt/rke/etcd-snapshotsprefix_path: /opt/rke
# 建议使用 ssh-agentssh_agent_auth: true# 可选 - 如果有 agent 可以不用配置# ssh_key_path: ~/.ssh/rke_rsa
# 节点信息nodes:  - address: 10.0.0.1 # 外部地址    # 内部地址 - 可选 - 集群内部通信使用    internal_address: 192.168.1.1    # 复写 hostname 后在 rancher 管理页面看到的是名字而不是 ip    hostname_override: k8snode1    # 使用的 ssh 用户 - 没有全局配置需要每个配置    user: admin    # 节点的角色 - 基础计算节点只需要 worker 即可    role: [ controlplane, etcd, worker ]
# 服务信息services:  etcd:    # etcd 自动备份 - 可选    backup_config:      # 启用快照      enabled: true      # 增量备份间隔      interval_hours: 6      # 保留天数      retention: 60      # 可选配置      s3backupconfig:        access_key: "myaccesskey"        secret_key:  "myaccesssecret"        bucket_name: "my-backup-bucket"        folder: "folder-name"        endpoint: "s3.eu-west-1.amazonaws.com"        region: "eu-west-1"
# 私有仓库 - 非常建议private_registries:  - url: registry.wener.me    # 多个 - 可设置默认    is_default: true

FAQ#

Error response from daemon: linux mounts: path /var/lib/rancher is mounted on / but it is not a shared mount#

mount --make-rshared /
# 开机启动设置rc-update add localcat <<CONF > /etc/local.d/00-mount-shared-root.start#!/bin/shmount --make-rshared /CONF

Failed to get job complete status for job rke-network-plugin-deploy-job in namespace kube-system#

  • 尝试再次执行,一般会好
  • #19713