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. 在集群基本信息页面,根据需要开启内网或者公网访问,后续需要使用 kubectl 操作集群。

  3. 根据 Kubernetes 集群的版本安装对应的 kubectl,详见连接集群

  4. 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
  5. 实际使用中请用自己的仓库命名空间替换 juicedata

  6. 参考文档在 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]: xxxxx
    AWS Secret Access Key [None]: xxxxx
    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