Docker 谷歌云实例上的独立kubelet持久磁盘装载
我有一个进程需要每天在Docker容器中运行,将一些数据从存储桶同步到外部卷(Google Cloud持久磁盘)。到目前为止,我通过创建一个单节点容器集群成功地启动了这个过程 由于该过程将在几个小时内完成,因此我希望在完成后删除VM资源(当然,永久磁盘除外)。启动/删除单个计算VM(没有kubernetes集群设置)似乎更简单,所以我尝试在容器优化的云实例上运行持久磁盘装载是失败的地方 我的发射命令:Docker 谷歌云实例上的独立kubelet持久磁盘装载,docker,kubernetes,google-cloud-platform,kubelet,google-container-os,Docker,Kubernetes,Google Cloud Platform,Kubelet,Google Container Os,我有一个进程需要每天在Docker容器中运行,将一些数据从存储桶同步到外部卷(Google Cloud持久磁盘)。到目前为止,我通过创建一个单节点容器集群成功地启动了这个过程 由于该过程将在几个小时内完成,因此我希望在完成后删除VM资源(当然,永久磁盘除外)。启动/删除单个计算VM(没有kubernetes集群设置)似乎更简单,所以我尝试在容器优化的云实例上运行持久磁盘装载是失败的地方 我的发射命令: gcloud compute instances create cvm-name-0 \
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
容器的内容。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
#cloud-config
bootcmd:
- echo "KUBELET_OPTS=\"--cloud-provider=gce\"" > /etc/default/kubelet
runcmd:
- systemctl start kubelet.service
cloudinit.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
#cloud-config
bootcmd:
- echo "KUBELET_OPTS=\"--cloud-provider=gce\"" > /etc/default/kubelet
runcmd:
- systemctl start kubelet.service
虽然--cloud provider=gce
选项修复了每个的“获取gce云提供程序失败”错误,但装载磁盘仍然存在一些问题
容器操作系统日志中的一条潜在相关行显示:
EXT4 fs(dm-0):由于功能不兼容,无法作为ext3装载
有没有办法在单个计算实例上(没有kubernetes集群)实现这一点?我还应该在哪里寻找更多信息丰富的错误日志?我现在没有使用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
用户:
-姓名:dockerrunner
uid:2000
分组:docker
写入\u文件:
-路径:/home/dockrunner/backup-hourly.sh
权限:0755
业主:dockerrunner
内容:|
#!/垃圾箱/垃圾箱
导出主页=/HOME/dockrunner
导出用户=根用户
工具箱--绑定/mnt/disks/nfs:/mnt/disks/nfs\
/googlecloudsdk/bin/gsutil-m\
rsync-r/mnt/disks/nfs gs:///每小时
-路径:/etc/systemd/system/files-backup-hourly.service
权限:0644
所有者:root
内容:|
[单位]
Description=共享文件备份上载脚本-每小时
[服务]
类型=一次性
ExecStart=/bin/sh/home/dockrunner/backup-hourly.sh
-路径:/etc/systemd/system/files-backup-hourly.timer
权限:0644
所有者:root
内容:|
[单位]
Description=每小时运行一次共享文件备份创建脚本
[计时器]
OnCalendar=*-*-**:00:00
[安装]
WantedBy=timers.target
runcmd:
-systemctl后台程序重新加载
-systemctl启动文件-backup-hourly.service
-systemctl启动文件-backup-hourly.timer
目前我没有使用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
用户:
-姓名:dockerrunner
uid:2000
分组:docker
写入\u文件:
-路径:/home/dockrunner/backup-hourly.sh
权限:0755
业主:dockerrunner
内容:|
#!/垃圾箱/垃圾箱
导出主页=/HOME/dockrunner
导出用户=根用户
工具箱--绑定/mnt/disks/nfs:/mnt/disks/nfs\
/googlecloudsdk/bin/gsutil-m\
rsync-r/mnt/disks/nfs gs:///每小时
-路径:/etc/systemd/system/files-backup-hourly.service
权限:0644
所有者:root
内容:|
[单位]
Description=共享文件备份上载脚本-每小时
[服务]
类型=一次性
ExecStart=/bin/sh/home/dockrunner/backup-hourly.sh
-路径:/etc/systemd/system/files-backup-hourly.timer
权限:0644
所有者:root
内容:|
[单位]
Description=每小时运行一次共享文件备份创建脚本
[计时器]
OnCalendar=*-*-**:00:00
[安装]
WantedBy=timers.target
runcmd:
-systemctl后台程序重新加载
-systemctl启动文件-backup-hourly.service
-systemctl启动文件-backup-hourly.timer
这是一个对gsutil rsync
很有帮助的例子,谢谢。但是,我的具体问题是挂载GCE持久磁盘。这是一个对gsutil rsync
很有帮助的例子,谢谢。然而,我的具体问题是安装GCE持久磁盘。