- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我使用命令创建了一个 200G 的磁盘 gcloud compute disks create --size 200GB my-disk
然后创建一个 PersistentVolume
apiVersion: v1 kind: PersistentVolume metadata: name: my-volume spec: capacity: storage: 200Gi accessModes: - ReadWriteOnce gcePersistentDisk: pdName: my-disk fsType: ext4
然后创建了一个 PersistentVolumeClaim
apiVersion: v1 kind: PersistentVolumeClaim metadata: name: my-claim spec: accessModes: - ReadWriteOnce resources: requests: storage: 200Gi
然后创建一个 StatefulSet 并将卷挂载到/mnt/disks,这是一个现有目录。 statefulset.yaml:
apiVersion: apps/v1beta2 kind: StatefulSet metadata: name: ... spec: ... spec: containers: - name: ... ... volumeMounts: - name: my-volume mountPath: /mnt/disks volumes: - name: my-volume emptyDir: {} volumeClaimTemplates: - metadata: name: my-claim spec: accessModes: [ "ReadWriteOnce" ] resources: requests: storage: 200Gi
我运行命令 kubectl get pv
并看到磁盘已成功挂载到每个实例
NAME CAPACITY ACCESS MODES RECLAIM POLICY STATUS CLAIM STORAGECLASS REASON AGE my-volume 200Gi RWO Retain Available 19m pvc-17c60f45-2e4f-11e8-9b77-42010af0000e 200Gi RWO Delete Bound default/my-claim-xxx_1 standard 13m pvc-5972c804-2e4e-11e8-9b77-42010af0000e 200Gi RWO Delete Bound default/my-claim standard 18m pvc-61b9daf9-2e4e-11e8-9b77-42010af0000e 200Gi RWO Delete Bound default/my-claimxxx_0 standard 18m
但是当我通过 ssh 进入一个实例并运行 df -hT
时,我没有看到已安装的卷。下面是输出:
Filesystem Type Size Used Avail Use% Mounted on /dev/root ext2 1.2G 447M 774M 37% / devtmpfs devtmpfs 1.9G 0 1.9G 0% /dev tmpfs tmpfs 1.9G 0 1.9G 0% /dev/shm tmpfs tmpfs 1.9G 744K 1.9G 1% /run tmpfs tmpfs 1.9G 0 1.9G 0% /sys/fs/cgroup tmpfs tmpfs 1.9G 0 1.9G 0% /tmp tmpfs tmpfs 256K 0 256K 0% /mnt/disks /dev/sda8 ext4 12M 28K 12M 1% /usr/share/oem /dev/sda1 ext4 95G 3.5G 91G 4% /mnt/stateful_partition tmpfs tmpfs 1.0M 128K 896K 13% /var/lib/cloud overlayfs overlay 1.0M 148K 876K 15% /etc
有人知道吗?
另外值得一提的是,我正在尝试将磁盘挂载到在 kubernete 引擎中运行的 docker 镜像。 Pod 是使用以下命令创建的:
docker build -t gcr.io/xxx . gcloud docker -- push gcr.io/xxx kubectl create -f statefulset.yaml
我进入的实例是运行 docker 镜像的实例。我在实例和 docker 容器中都没有看到卷
更新我找到了卷,我在实例中运行了 df -ahT
,并看到了相关条目
/dev/sdb - - - - - /var/lib/kubelet/plugins/kubernetes.io/gce-pd/mounts/gke-xxx-cluster-c-pvc-61b9daf9-2e4e-11e8-9b77-42010af0000e /dev/sdb - - - - - /var/lib/kubelet/plugins/kubernetes.io/gce-pd/mounts/gke-xxx-cluster-c-pvc-61b9daf9-2e4e-11e8-9b77-42010af0000e /dev/sdb - - - - - /home/kubernetes/containerized_mounter/rootfs/var/lib/kubelet/plugins/kubernetes.io/gce-pd/mounts/gke-xxx-cluster-c-pvc-61b9daf9-2e4e-11e8-9b77-42010af0000e /dev/sdb - - - - - /home/kubernetes/containerized_mounter/rootfs/var/lib/kubelet/plugins/kubernetes.io/gce-pd/mounts/gke-xxx-cluster-c-pvc-61b9daf9-2e4e-11e8-9b77-42010af0000e /dev/sdb - - - - - /var/lib/kubelet/pods/61bb679b-2e4e-11e8-9b77-42010af0000e/volumes/kubernetes.io~gce-pd/pvc-61b9daf9-2e4e-11e8-9b77-42010af0000e /dev/sdb - - - - - /var/lib/kubelet/pods/61bb679b-2e4e-11e8-9b77-42010af0000e/volumes/kubernetes.io~gce-pd/pvc-61b9daf9-2e4e-11e8-9b77-42010af0000e /dev/sdb - - - - - /home/kubernetes/containerized_mounter/rootfs/var/lib/kubelet/pods/61bb679b-2e4e-11e8-9b77-42010af0000e/volumes/kubernetes.io~gce-pd/pvc-61b9daf9-2e4e-11e8-9b77-42010af0000e /dev/sdb - - - - - /home/kubernetes/containerized_mounter/rootfs/var/lib/kubelet/pods/61bb679b-2e4e-11e8-9b77-42010af0000e/volumes/kubernetes.io~gce-pd/pvc-61b9daf9-2e4e-11e8-9b77-42010af0000e
然后我进入 docker 容器并运行 df -ahT
,我得到了
Filesystem Type Size Used Avail Use% Mounted on /dev/sda1 ext4 95G 3.5G 91G 4% /mnt/disks
为什么我看到的总大小是 95G,而不是我的卷大小 200G?
更多信息:kubectl describe pod
Name: xxx-replicaset-0 Namespace: default Node: gke-xxx-cluster-default-pool-5e49501c-nrzt/10.128.0.17 Start Time: Fri, 23 Mar 2018 11:40:57 -0400 Labels: app=xxx-replicaset controller-revision-hash=xxx-replicaset-755c4f7cff Annotations: kubernetes.io/created-by={"kind":"SerializedReference","apiVersion":"v1","reference":{"kind":"StatefulSet","namespace":"default","name":"xxx-replicaset","uid":"d6c3511f-2eaf-11e8-b14e-42010af0000... kubernetes.io/limit-ranger=LimitRanger plugin set: cpu request for container xxx-deployment Status: Running IP: 10.52.4.5 Created By: StatefulSet/xxx-replicaset Controlled By: StatefulSet/xxx-replicaset Containers: xxx-deployment: Container ID: docker://137b3966a14538233ed394a3d0d1501027966b972d8ad821951f53d9eb908615 Image: gcr.io/sampeproject/xxxstaging:v1 Image ID: docker-pullable://gcr.io/sampeproject/xxxstaging@sha256:a96835c2597cfae3670a609a69196c6cd3d9cc9f2f0edf5b67d0a4afdd772e0b Port: 8080/TCP State: Running Started: Fri, 23 Mar 2018 11:42:17 -0400 Ready: True Restart Count: 0 Requests: cpu: 100m Environment: Mounts: /mnt/disks from my-volume (rw) /var/run/secrets/kubernetes.io/serviceaccount from default-token-hj65g (ro) Conditions: Type Status Initialized True Ready True PodScheduled True Volumes: my-claim: Type: PersistentVolumeClaim (a reference to a PersistentVolumeClaim in the same namespace) ClaimName: my-claim-xxx-replicaset-0 ReadOnly: false my-volume: Type: EmptyDir (a temporary directory that shares a pod's lifetime) Medium: default-token-hj65g: Type: Secret (a volume populated by a Secret) SecretName: default-token-hj65g Optional: false QoS Class: Burstable Node-Selectors: Tolerations: node.alpha.kubernetes.io/notReady:NoExecute for 300s node.alpha.kubernetes.io/unreachable:NoExecute for 300s Events: Type Reason Age From Message ---- ------ ---- ---- ------- Warning FailedScheduling 10m (x4 over 10m) default-scheduler PersistentVolumeClaim is not bound: "my-claim-xxx-replicaset-0" (repeated 5 times) Normal Scheduled 9m default-scheduler Successfully assigned xxx-replicaset-0 to gke-xxx-cluster-default-pool-5e49501c-nrzt Normal SuccessfulMountVolume 9m kubelet, gke-xxx-cluster-default-pool-5e49501c-nrzt MountVolume.SetUp succeeded for volume "my-volume" Normal SuccessfulMountVolume 9m kubelet, gke-xxx-cluster-default-pool-5e49501c-nrzt MountVolume.SetUp succeeded for volume "default-token-hj65g" Normal SuccessfulMountVolume 9m kubelet, gke-xxx-cluster-default-pool-5e49501c-nrzt MountVolume.SetUp succeeded for volume "pvc-902c57c5-2eb0-11e8-b14e-42010af0000e" Normal Pulling 9m kubelet, gke-xxx-cluster-default-pool-5e49501c-nrzt pulling image "gcr.io/sampeproject/xxxstaging:v1" Normal Pulled 8m kubelet, gke-xxx-cluster-default-pool-5e49501c-nrzt Successfully pulled image "gcr.io/sampeproject/xxxstaging:v1" Normal Created 8m kubelet, gke-xxx-cluster-default-pool-5e49501c-nrzt Created container Normal Started 8m kubelet, gke-xxx-cluster-default-pool-5e49501c-nrzt Started container
似乎没有安装正确的卷。我在 docker 容器中运行了 lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT sda 8:0 0 100G 0 disk ├─sda1 8:1 0 95.9G 0 part /mnt/disks ├─sda2 8:2 0 16M 0 part ├─sda3 8:3 0 2G 0 part ├─sda4 8:4 0 16M 0 part ├─sda5 8:5 0 2G 0 part ├─sda6 8:6 0 512B 0 part ├─sda7 8:7 0 512B 0 part ├─sda8 8:8 0 16M 0 part ├─sda9 8:9 0 512B 0 part ├─sda10 8:10 0 512B 0 part ├─sda11 8:11 0 8M 0 part └─sda12 8:12 0 32M 0 part sdb 8:16 0 200G 0 disk
为什么会这样?
最佳答案
当您使用 PVC 时,K8s 会为您管理永久性磁盘。
存储类中供应商定义 PV 的确切方式。由于您使用 GKE,因此您的默认 SC 使用 kubernetes.io/gce-pd provisioner ( https://kubernetes.io/docs/concepts/storage/storage-classes/#gce )。
换句话说,为每个 pod 创建新的 PV。
如果您想使用现有磁盘,您可以使用卷而不是 PVC (https://kubernetes.io/docs/concepts/storage/volumes/#gcepersistentdisk)
关于docker - 谷歌 Kubernetes 引擎 : Not seeing mount persistent volume in the instance,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49442497/
我知道我的问题有点含糊,但我不知道如何描述它。我问过很多地方,但似乎没有人理解我为什么要这样做。但请耐心等待,我会解释为什么我想要这样的东西。 我使用 Liquid Templates 允许用户在我的
这个问题在这里已经有了答案: what is the difference between null != object and object!=null [duplicate] (2 个回答) 7年
当我在我的本地主机 Google App Engine 应用程序中将日志记录级别更改为 FINE 时,我开始在我的跟踪堆栈中看到这些: Apr 17, 2013 4:54:20 PM com.goog
Python 有内置函数 type : class type(object) With one argument, return the type of an object. The return v
我正在使用深度学习进行语义分割,我遇到了以下术语:语义分割、实例检测、对象检测 和对象分割. 它们有什么区别? 最佳答案 这些术语的某些用法对用户而言是主观的或依赖于上下文,但据我所知对这些术语的合理
我面临 -[NSConcreteMutableData release] 的问题:消息发送到已释放的实例,我也附上了我的示例代码。 - (IBAction)uploadImage { NSString
我试图显示模型中的单个实例(数据库行),其中多个实例共享多行的相同字段(列)值。为了澄清这一说法,我有以下情况: ID/Title/Slug/Modified 1 Car A 1s ag
我正在尝试使用mockito来模拟服务。然而,我没有找到一种方法来告诉mockito,给定一个类的实例返回给我相同的实例: 类似于: given(service.add(any(Individua
我知道如何从父类(super class)原型(prototype)创建子类原型(prototype)。但是,如果我已经有了父类(super class)对象的实例来创建子类对象怎么办? 在 JS 中
鉴于 Kotlin 1.1。对于某个类的 instance,instance::class.java 和 instance.javaClass 似乎几乎是等价的: val i = 0 println(
这个问题在这里已经有了答案: 8年前关闭。 Possible Duplicate: Find out the instance id from within an ec2 machine 我正在寻找从
为什么我的 Instantiate 函数没有创建 That 的“空白”实例? 我有以下最小类: classdef That < handle properties This = '' end
Session session = HibernateUtil.getSessionFactory().openSession(); Transaction tx = session.beginTra
考虑以下几点: public class A { public String name = "i am a A instance"; } public class B extends A {
我正在使用 Scalr 来扩展网站服务器。 在 Apache 服务器上,我安装了 Sakai,并为 Linux 机器创建了一个启动脚本。 问题是,如何确保MySQL实例在Apache服务器启动之前启动
Android Realm DB 允许使用 Realm.getInstance() 获取多个实例。这些中的最佳实践是什么? :1.创建单个实例(应用程序范围)并在任何地方使用它2. 在需要时获取一个新
我很难理解为什么修改实例 a 中的属性会修改实例 b 中的相同属性。 var A = function (){ }; A.prototype.data = { value : 0 }; var
我将 Weka 用作更长管道的一部分,因此,我无法承受将所有数据写入文件或数据库只是为了创建一个 Instances。目的。我可以即时做的是创建 Instance 的列表对象。 来自 this pag
class C: def func(self, a): print(a) c = C() print(c.__dict__) # {} c.func = c.func # c.func i
Angular Routing 文档提到了组件实例创建、组件实例激活和路由激活。 文档没有解释这些概念的区别,以及每次创建/激活发生的时间。 问题 实例创建和实例激活有什么区别? 实例激活和路由激活有
我是一名优秀的程序员,十分优秀!