Configuração do volume de armazenamento K8s

armazenamento docker

Quando o contêiner é excluído, os dados também são excluídos. Para os dados que precisam ser aplicados para persistência, é necessário configurar o armazenamento, que geralmente é baseado no armazenamento no nó (e o armazenamento do nó pode ser NFS, ceph, iscsi, etc.)

Armazenamento de pod de K8s

Como o Pod é uma coleção baseada em contêineres, o compartilhamento de armazenamento é realizado com base no contêiner de pausa

Volume de armazenamento do K8s A
função do volume de armazenamento é que, devido à estrutura do contêiner, os dados serão excluídos conforme o contêiner é excluído, portanto, o Pod precisa usar a configuração do volume de armazenamento para compartilhamento e persistência de dados.

1. Use a estrutura de configuração

  • Docker: o uso de armazenamento do docker é diretamente relativo ao próprio contêiner
    • Configure os recursos, com base no diretório do nó ou NFS, o ceph deve ser configurado no nó
    • Uso de montagem: docker run -v / root / xxxx: / root / xxxx (o armazenamento do Docker é dividido em 2 tipos, você pode ver o artigo anterior para obter detalhes)
  • Pod: o armazenamento do pod é definido com base nos recursos do pod, porque o pod não é um único indivíduo
    • O armazenamento precisa ser definido primeiro, ou seja, os recursos de armazenamento são preparados, o campo de volumes (camada de pod)
    • Recursos de armazenamento de montagem de contêiner (recursos de armazenamento de ligação), campo volumeMounts (camada de contêineres)

2. Classificação do volume de armazenamento

  • Volume de armazenamento compartilhado: para uso temporário de dados ou com base no uso em um pod
  • Volume de armazenamento compartilhado persistente: os dados podem ser armazenamento compartilhado persistente e não serão excluídos com o ciclo de vida do contêiner

Volume de armazenamento compartilhado

  • emptyDir: semelhante a docker em execução direta, e Pod é o contêiner de conteúdo que precisa compartilhar dados e desaparecerá com o ciclo de vida do Pod
    • Pode fornecer alto desempenho com base na implementação de memória

Volume de armazenamento compartilhado persistente

  • hostPath: armazenamento de diretório baseado em nó. O nó pode ser armazenamento NFS ou armazenamento ceph, mas a estratégia de cópia do controlador não pode ser implementada. Os dados só podem ser persistidos e compartilhados no nó (adequado para controladores de daemonset, responsáveis ​​apenas por coletar dados em seus respectivos nós)
  • nfs / cinder / ceph ...: baseado no armazenamento de rede para realizar o verdadeiro armazenamento compartilhado persistente

Exemplo (NFS)

Pré-requisitos O
nó do nó precisa instalar o cliente nfs

apiVersion: apps/v1
kind: Deployment
metadata:
  name: centos-nfs
  namespace: default
  labels:
    app: centos
    version: "7.6"
spec:
  replicas: 1
  selector:
    matchLabels:
     app: centos
     version: "7.6"
  template:
    metadata:
      labels:
        app: centos
        version: "7.6"
    spec:
      containers:
      - name: centos-nfs
        image: centos:7.6.1810
        imagePullPolicy: IfNotPresent
        command: [ /usr/sbin/init ]
        volumeMounts: #挂载存储
        - mountPath: /mnt   #容器内挂载目录
          name: nfs #定义存储的name名称
      volumes:  #定义存储
      - name: nfs  #名称
        nfs:  #存储类型
          path: /nfs_share  #nfs定义的目录
          server: 192.168.12.10  #服务器地址
          readOnly: true   #开启只读,volumeMounts也可以设置针对容器,这里开启就是针对Pod

Insira a descrição da imagem aqui
Insira a descrição da imagem aqui

  • Referência: Books-kubernetes advanced combat-Ma Yongliang

Acho que você gosta

Origin blog.csdn.net/yangshihuz/article/details/113059897
Recomendado
Clasificación