【问题标题】:Standalone kubelet persistent disk mount on Google Cloud instanceGoogle Cloud 实例上的独立 kubelet 永久磁盘挂载
【发布时间】:2017-10-28 13:34:29
【问题描述】:

我有一个进程需要每天在 Docker 容器中运行,将一些数据从存储桶同步到外部卷(谷歌云永久磁盘)。到目前为止,我成功地通过创建一个单节点容器集群来启动这个过程。

由于该过程在几个小时内完成,因此我想在完成后删除 VM 资源(当然永久磁盘除外)。启动/删除单个计算 VM(没有 kubernetes 集群设置)似乎更简单,所以我试图让 single kubelet 在容器优化的云实例上运行。 永久磁盘安装是失败的地方。

我的启动命令:

gcloud compute instances create cvm-name-0 \
    --image-family=cos-stable \
    --image-project=cos-cloud \
    --boot-disk-type pd-ssd \
    --boot-disk-size 10GB \
    --metadata-from-file \
    "google-container-manifest=containers.yaml,user-data=cloudinit.yaml" \
    --zone "$gzone" \
    --scopes default,storage-rw \
    --machine-type n1-highcpu-4

container.yaml的内容:

apiVersion: v1
kind: Pod
metadata:
  name: container-name
spec:
  containers:
    - name: container-name
      image: gcr.io/project-name/container-name
      imagePullPolicy: Always
      volumeMounts:
        - name: persistent-disk-name
          mountPath: /home/someuser/somedir
  volumes:
    - name: persistent-disk-name
      gcePersistentDisk:
        pdName: persistent-disk-name
        fsType: ext4

cloudinit.yaml的内容:

#cloud-config
bootcmd:
- echo "KUBELET_OPTS=\"--cloud-provider=gce\"" > /etc/default/kubelet
runcmd:
- systemctl start kubelet.service

虽然--cloud-provider=gce 选项修复了每个this question 的“无法获取 GCE 云提供商”错误,但安装磁盘仍然存在一些问题。

容器操作系统日志中可能相关的一行说:

EXT4-fs (dm-0):由于功能不兼容,无法安装为 ext3

有什么方法可以在单个计算实例上工作(没有 kubernetes 集群)?我还应该在哪里寻找更多信息性错误日志?

【问题讨论】:

    标签: docker kubernetes google-cloud-platform kubelet google-container-os


    【解决方案1】:

    我目前没有使用 kubernetes,但我正在备份到云存储桶。

    我的云配置中有这样的东西:

    users:
    - name: dockerrunner
      uid: 2000
      groups: docker
    write_files:
    - path: /home/dockerrunner/backup-hourly.sh
      permissions: 0755
      owner: dockerrunner
      content: |
        #!/bin/sh
        export HOME=/home/dockerrunner
        export USER=root
        toolbox --bind /mnt/disks/nfs:/mnt/disks/nfs \
          /google-cloud-sdk/bin/gsutil -m \
          rsync -r /mnt/disks/nfs gs://<bucket-name>/hourly
    - path: /etc/systemd/system/files-backup-hourly.service
      permissions: 0644
      owner: root
      content: |
        [Unit]
        Description=Shared Files Backup upload script - hourly
    
        [Service]
        Type=oneshot
        ExecStart=/bin/sh /home/dockerrunner/backup-hourly.sh
    
    - path: /etc/systemd/system/files-backup-hourly.timer
      permissions: 0644
      owner: root
      content: |
        [Unit]
        Description=Run Shared Files Backup create script every hour
    
        [Timer]
        OnCalendar=*-*-* *:00:00
    
        [Install]
        WantedBy=timers.target
    runcmd:
    - systemctl daemon-reload
    - systemctl start files-backup-hourly.service
    - systemctl start files-backup-hourly.timer
    

    【讨论】:

    • 这是gsutil rsync 的有用示例,谢谢。但是,我的具体问题是安装 GCE 永久磁盘。
    猜你喜欢
    • 2018-03-06
    • 1970-01-01
    • 2019-05-24
    • 2016-04-21
    • 1970-01-01
    • 1970-01-01
    • 2019-01-26
    • 2016-11-15
    • 2020-02-08
    相关资源
    最近更新 更多