O Kf é compatível com a montagem de volumes do NFS usando o kf marketplace
.
Pré-requisitos
Criar uma instância de serviço do NFS
Execute kf marketplace
para ver os serviços disponíveis. O serviço integrado do NFS aparece na lista se o NFS estiver ativado na plataforma.
Broker Name Namespace Description
nfsvolumebroker nfs mount nfs shares
Montar um sistema de arquivos externo
Criar uma instância de serviço
Para montar um serviço do NFS existente:
kf create-service nfs existing SERVICE-INSTANCE-NAME -c '{"share":"SERVER/SHARE", "capacity":"CAPACITY"}'
Substitua as variáveis pelos seus valores.
- SERVICE-INSTANCE-NAME é o nome que você quer para essa instância de serviço de volume do NFS.
- SERVER/SHARE é o endereço do NFS do servidor e compartilhamento.
- CAPACITY usa o formato de quantidade do Kubernetes.
Confirme se o serviço de volume do NFS aparece na sua lista de serviços. Você verá uma saída semelhante a este exemplo:
$ kf services
...
Listing services in Space: demo-space
Name Type ClassName PlanName Age Ready Reason
filestore-nfs volume nfs existing 6s True <nil>
...
Vincular sua instância de serviço a um aplicativo
Para vincular uma instância de serviço do NFS a um aplicativo, execute:
kf bind-service YOUR-APP-NAME SERVICE-NAME -c '{"uid":"2000","gid":"2000","mount":"MOUNT-PATH","readonly":true}'
Substitua as variáveis pelos seus valores.
YOUR-APP-NAME é o nome do aplicativo com que você quer usar o serviço de volume.
SERVICE-NAME é o nome da instância de serviço de volume que você criou na etapa anterior.
uid
:UID egid
:GID especificam as permissões do diretório do compartilhamento de montagem.MOUNT-PATH é o caminho em que o volume precisa ser montado no seu aplicativo.
(Opcional)
"readonly":true
é uma string JSON opcional que cria uma montagem somente leitura. Por padrão, os serviços de volume montam um sistema de arquivos de leitura e gravação.
Use o comando kf bindings
para listar todas as vinculações em um Space: Você verá um resultado semelhante a este exemplo:
$ kf bindings
...
Listing bindings in Space: demo-space
Name App Service Age Ready
binding-spring-music-filestore-nfs spring-music filestore-nfs 71s True
...
Acessar o serviço de volume no aplicativo
Para acessar o serviço de volume do seu aplicativo, é preciso saber qual caminho de arquivo usar no código. Veja o caminho do arquivo nos detalhes da vinculação de serviço, que são visíveis nas variáveis de ambiente do seu aplicativo.
Veja as variáveis de ambiente do aplicativo.
kf vcap-services YOUR-APP-NAME
Substitua YOUR-APP-NAME pelo nome do aplicativo.
Veja a seguir um exemplo de saída do comando kf vcap-services
:
kf vcap-services *YOUR-APP-NAME*
{
"nfs": [
{
"instance_name": "nfs-instance",
"name": "nfs-instance",
"label": "nfs",
"tags": [],
"plan": "existing",
"credentials": {
"capacity": "1Gi",
"gid": 2000,
"mount": "/test/mount",
"share": "10.91.208.210/test",
"uid": 2000
},
"volume_mounts": [
{
"container_dir": "/test/mount",
"device_type": "shared",
"mode": "rw"
}
]
}
]
}
Use as propriedades em volume_mounts
para qualquer informação exigida pelo aplicativo.
Propriedade | Descrição |
---|---|
container_dir |
String que contém o caminho para o volume montado que você vincula ao seu aplicativo. |
device_type |
A versão do volume do NFS. No momento, só é compatível com dispositivos compartilhados. Um dispositivo compartilhado representa um sistema de arquivos distribuído que pode ser montado em todas as instâncias do aplicativo simultaneamente. |
mode |
String que informa que tipo de acesso seu aplicativo tem para o NFS: ro (somente leitura) ou rw (leitura e gravação). |