A versão 1.0 do cliente ossfs evolui conforme as iterações do CSI. Este tópico explica o formato de versão, como verificar a versão do ossfs e como alternar para a versão 1.91 ou posterior.
Como o ossfs funciona
O ossfs 1.0 é um sistema de arquivos em espaço de usuário que monta um bucket do OSS em um sistema de arquivos local Linux. Ao montar um volume do OSS com o CSI, o csi-plugin inicia um processo ossfs que monta o bucket em um caminho do contêiner, permitindo operações de leitura e escrita POSIX em objetos do OSS.
O ossfs 1.0 herda todos os recursos do s3fs e adiciona:
Suporte à maioria das operações de arquivo POSIX, incluindo upload, baixe e gerenciamento de permissões de arquivos e diretórios
Upload multipart e retomável, ativado por padrão
Verificação MD5 para integridade dos dados
Limitações
O ossfs 1.0 suporta a maioria dos recursos de sistema de arquivos POSIX, mas não todos. Para operações de arquivo de alto desempenho, use o ossfs 1.0 versão 1.91 ou posterior. Consulte Melhores práticas para ativar a versão 1.91 e posteriores.
Formato de versão
Os números de versão do ossfs 1.0 seguem o formato x.yy.z:
x.yy — versão upstream do s3fs. Reverta para uma versão x.yy específica usando variáveis de ambiente do CSI.
z — versão de iteração do ossfs, que adiciona melhorias específicas do OSS e do ACK, como monitoramento, autenticação e criptografia. Consulte csi-plugin.
As builds de contêiner incluem o sufixo .ack.1 para diferenciá-las da versão do ossfs open source, por exemplo, 1.80.6.ack.1.
Compatibilidade de versões
A versão do ossfs depende da versão do CSI:
|
Arquitetura |
Versão do ossfs 1.0 |
Versão do CSI |
|
Arm64 |
1.91 e posteriores |
v1.30.1-98960d8-aliyun (ativado via feature gate) / v1.30.4-fe12624-aliyun (padrão) |
|
Arm64 |
1.80.x |
v1.20.5-ff6490f-aliyun (primeira versão do CSI com suporte a Arm64) |
|
AMD64 |
1.91 e posteriores |
v1.30.1-98960d8-aliyun (ativado via feature gate) / v1.30.4-fe12624-aliyun (padrão) |
|
AMD64 |
1.88.x |
v1.22.14-820d8870-aliyun |
|
AMD64 |
1.86.x |
v1.16.9.43-f36bb540-aliyun |
|
AMD64 |
1.80.x |
Versão inicial |
Consulte Recursos de atualização de versão.
Verificar a versão do ossfs
O método para verificar a versão do ossfs varia conforme a versão do CSI.
CSI anterior à 1.28 (exceto 1.26.6) — o ossfs executa diretamente no nó. Faça login em qualquer nó e execute:
/usr/local/bin/ossfs --version
CSI 1.26.6, ou 1.28.1 e posteriores — o ossfs executa como um pod de contêiner dentro do cluster. Selecione sua versão do CSI abaixo.
CSI 1.30.4 ou posterior
O CSI 1.30.4 ou posterior cria pods do ossfs no namespace ack-csi-fuse após a montagem de um volume do OSS.
-
Liste os pods do ossfs em execução:
kubectl -n ack-csi-fuse get pod | grep csi-fuse-ossfs -
Verifique a versão do ossfs:
kubectl -n ack-csi-fuse exec -it <csi-fuse-ossfs-xxxx> -- ossfs --version
CSI anterior à 1.30.4
Versões do CSI anteriores à 1.30.4 criam pods do ossfs no namespace kube-system.
-
Liste os pods do ossfs em execução:
kubectl -n kube-system get pod | grep csi-fuse-ossfs -
Verifique a versão do ossfs:
kubectl -n kube-system exec -it <csi-fuse-ossfs-xxxx> -- ossfs --version
Alternar para o ossfs 1.91 ou posterior
Escolha um método com base na sua versão do CSI.
Atualizar o CSI (recomendado)
O CSI 1.30.4 ou posterior usa o ossfs 1.91+ por padrão. Portanto, a atualização do CSI alterna o ossfs automaticamente.
Ativar o feature gate UpdatedOssfsVersion
Caso não seja possível atualizar o CSI, ative o feature gate UpdatedOssfsVersion no CSI 1.30.1 ou posterior.
O que muda e o que permanece igual:
Novos contêineres ossfs iniciados passam a usar automaticamente a versão 1.91 ou posterior.
Aplicações existentes que utilizam volumes do OSS não são afetadas imediatamente.
Para atualizar uma aplicação em execução, reinicie seu processo ossfs. Consulte Como reiniciar o processo ossfs no modo de montagem compartilhada?
Por padrão, pods que montam o mesmo volume do OSS no mesmo nó compartilham um único processo ossfs. Assim, apenas um pod csi-fuse-ossfs-*** executa por volume compartilhado.
Pré-requisitos
O csi-plugin deve estar na versão 1.30.1 ou posterior.
Para verificar a versão do seu csi-plugin:
Faça login no console do ACK e clique em Clusters no painel de navegação à esquerda.
Clique no nome do cluster e, em seguida, clique em Add-ons no painel de navegação à esquerda.
Na página Add-ons, localize o csi-plugin e verifique sua versão. Se for anterior à 1.30.1, clique em Upgrade no cartão do csi-plugin.
Ativar via kubectl
-
Edite o DaemonSet do csi-plugin:
kubectl -n kube-system edit ds csi-plugin -
Na seção
argsdo contêiner csi-plugin (não é um init container), adicione a flag do feature gate:- args: - --endpoint=$(CSI_ENDPOINT) - --v=2 - --driver=oss,nas,disk - --feature-gates=UpdatedOssfsVersion=trueSe outros feature gates já estiverem ativados, anexe ao valor existente de
--feature-gates:- --feature-gates=xxxxxx=true,yyyyyy=false,UpdatedOssfsVersion=true
Ativar pelo console do ACK
Ativar um feature gate pelo console sobrescreve a configuração existente de feature gates. Se não tiver certeza sobre a ativação de outros feature gates, use o kubectl.
Na página Add-ons, clique em Configuration no cartão do csi-plugin.
Na página csi-plugin Parameters, defina FeatureGate como
UpdatedOssfsVersion=truee clique em OK. Caso outros feature gates estejam ativos, utilize o formatoxxxxxx=true,yyyyyy=false,UpdatedOssfsVersion=true.