Skip to main content

如何在托管的 Kubernetes 环境中使用 JuiceFS

阿里云

  1. Kubernetes 集群需要开启 SNAT 访问公网,登录集群的节点访问公网确认网络是否正常。 如果创建集群的时候没有开启,请参考官方文档 开启 SNAT

  2. 在集群的 集群信息连接信息 标签页,按照文档配置 kubectl

  3. 参考文档 在 Kubernetes 中使用 JuiceFS 安装和使用 JuiceFS

腾讯云

腾讯云 EKS (弹性集群)暂不支持通过 CSI 方式使用自定义存储。下面文档展示在 TKE 集群中如何使用 JuiceFS。

  1. Kubernetes 集群节点需要能访问公网,登录集群的节点访问公网确认网络是否正常。 如果不能访问公网,请参考 VPC 连接公网 对集群所在的 VPC 配置公网访问,比如配置 SNAT

  2. 在集群 基本信息 页面,开启 内网访问

  3. 新建一台低配虚拟机用于安装 kubectl 命令行,新建的时候选择与 Kubernetes 集群相同的 VPC。也可以选用该 VPC 内已有的一台服务器比如集群的一个节点做为运行 kubectl 的客户端机器

  4. 根据 Kubernetes 集群的版本安装对应的 kubectl 客户端,例如集群的版本为 1.18 ,在 该版本的 CHANGELOG 找到 客户端下载链接 ,下载相应的安装包,按照步骤 1 中 通过 Kubectl 连接 Kubernetes 集群的操作说明 安装 kubectl

  5. TKE 无法访问 CSI 需要的部分在 quay.io 的 sidecar 镜像,需要自行同步到 CCR。比如将其同步到 juicedata 命名空间并使用 CCR 的镜像地址替换 quay.io 的镜像地址:

    $ cat k8s.yaml | grep 'image: quay.io' | awk '{print $NF}' | sort | uniq
    quay.io/k8scsi/csi-node-driver-registrar:v1.1.0
    quay.io/k8scsi/csi-provisioner:v1.6.0
    quay.io/k8scsi/livenessprobe:v1.1.0

    $ docker login ccr.ccs.tencentyun.com
    Username: <Registry username>
    Password: <Registry password>

    $ docker pull quay.io/k8scsi/csi-node-driver-registrar:v1.1.0
    $ docker image tag quay.io/k8scsi/csi-node-driver-registrar:v1.1.0 ccr.ccs.tencentyun.com/juicedata/csi-node-driver-registrar:v1.1.0
    $ docker push ccr.ccs.tencentyun.com/juicedata/csi-node-driver-registrar:v1.1.0

    $ docker pull quay.io/k8scsi/csi-provisioner:v1.6.0
    $ docker image tag quay.io/k8scsi/csi-provisioner:v1.6.0 ccr.ccs.tencentyun.com/juicedata/csi-provisioner:v1.6.0
    $ docker push ccr.ccs.tencentyun.com/juicedata/csi-provisioner:v1.6.0

    $ docker pull quay.io/k8scsi/livenessprobe:v1.1.0
    $ docker image tag quay.io/k8scsi/livenessprobe:v1.1.0 ccr.ccs.tencentyun.com/juicedata/livenessprobe:v1.1.0
    $ docker push ccr.ccs.tencentyun.com/juicedata/livenessprobe:v1.1.0

    $ sed -i 's@quay.io/k8scsi@ccr.ccs.tencentyun.com/juicedata@g' k8s.yaml
  6. 实际使用中请用自己的仓库命名空间替换 juicedata

  7. 参考文档 在 Kubernetes 中使用 JuiceFS 安装和使用 JuiceFS,注意文档中的 k8s.yaml 使用上述改过镜像地址的 k8s.yaml

AWS

AWS EKS 是 AWS 的托管容器服务,下面文档展示在 AWS EKS 中如何使用 JuiceFS。

  1. Kubernetes 集群节点需要能公网访问。

  2. 安装 AWS CLI

    curl "https://awscli.amazonaws.com/awscli-exe-linux-x86_64.zip" -o "awscliv2.zip"
    unzip awscliv2.zip
    sudo ./aws/install
  3. 配置您的 AWS CLI 凭证

    $ aws configure
    AWS Access Key ID [None]: AKIA5Z7C6xxxxxxxxxx
    AWS Secret Access Key [None]: 25+aOd2WJfYJ6uxxxxxxxxxxxxxxxx
    Default region name [None]: cn-northwest-1
    Default output format [None]: json
  4. 使用 AWS CLI 创建 kubeconfig 文件

    $ aws eks --region cn-northwest-1 update-kubeconfig --name test
    Added new context arn:aws-cn:eks:cn-northwest-1:949126829252:cluster/test to /root/.kube/config
  5. 参考文档 在 Kubernetes 中使用 JuiceFS 安装和使用 JuiceFS