我正在尝试使用azureFile创建持久卷但是我不断收到以下错误.
MountVolume.SetUp failed for volume "kubernetes.io/azure-file/2882f900-d7de-11e6-affc-000d3a26076e-pv0001" (spec.Name: "pv0001") pod "2882f900-d7de-11e6-affc-000d3a26076e" (UID: "2882f900-d7de-11e6-affc-000d3a26076e") with: mount failed: exit status 32 Mounting arguments: //xxx.file.core.windows.net/test /var/lib/kubelet/pods/2882f900-d7de-11e6-affc-000d3a26076e/volumes/kubernetes.io~azure-file/pv0001 cifs [vers=3.0,username=xxx,password=xxx ,dir_mode=0777,file_mode=0777] Output: mount error(13): Permission denied Refer to the mount.cifs(8) manual page (e.g. man mount.cifs)
Run Code Online (Sandbox Code Playgroud)
我还尝试在其中一个正在运行kubernetes的VM上安装共享,这样做有效.
我使用以下配置来创建pv/pvc/pod.
apiVersion: v1
kind: Secret
metadata:
name: azure-secret
type: Opaque
data:
azurestorageaccountkey: [base64 key]
azurestorageaccountname: [base64 accountname]
apiVersion: v1
kind: PersistentVolume
metadata:
name: pv0001
spec:
capacity:
storage: 5Gi
accessModes:
- ReadWriteOnce
azureFile:
secretName: azure-secret
shareName: test
readOnly: false
kind: Pod …Run Code Online (Sandbox Code Playgroud) 我有一个配置文件作为 kubernetes 中的秘密,我想将其安装到容器内的特定位置。问题在于,在容器内创建的卷是一个文件夹,而不是其中包含机密内容的文件。有办法解决吗?我的部署如下所示:
kind: Deployment
apiVersion: apps/v1
metadata:
name: jetty
namespace: default
spec:
replicas: 1
selector:
matchLabels:
app: jetty
template:
metadata:
labels:
app: jetty
spec:
containers:
- name: jetty
image: quay.io/user/jetty
ports:
- containerPort: 8080
volumeMounts:
- name: config-properties
mountPath: "/opt/jetty/config.properties"
subPath: config.properties
- name: secrets-properties
mountPath: "/opt/jetty/secrets.properties"
- name: doc-path
mountPath: /mnt/storage/
resources:
limits:
cpu: '1000m'
memory: '3000Mi'
requests:
cpu: '750m'
memory: '2500Mi'
volumes:
- name: config-properties
configMap:
name: jetty-config-properties
- name: secrets-properties
secret:
secretName: jetty-secrets
- name: doc-path …Run Code Online (Sandbox Code Playgroud) 假设我在 Gitlab 上有存储库并遵循以下部署方案:
.gitlab-ci.yml设置 docker-compose 中,与依赖项一起构建和建立我的服务。production。正如Gitlab 指南中建议的那样,我放置了/etc/gitlab-runner/config.toml以下几行:
executor = "docker"
[runners.docker]
image = "alpine"
volumes = ["/var/run/docker.sock:/var/run/docker.sock", "/cache"]
Run Code Online (Sandbox Code Playgroud)
但我的书docker-compose.yml完全被忽略了。假设我有具有以下结构的 git 存储库:
.gitlab-ci.yml
docker-compose.yml
user_conf.d/app.conf
Run Code Online (Sandbox Code Playgroud)
并有卷:./user_conf.d:/etc/nginx/user_conf.d. 当我检查/etc/nginx/user_conf.d容器内部时,我发现一个空文件夹而不是app.conf里面的文件夹。
所以问题是:如何正确地将卷传递到从 Gitlab runner 的 docker 执行器启动的 docker 容器。
PS配置如下:
.gitlab-ci.yml:
.gitlab-ci.yml
docker-compose.yml
user_conf.d/app.conf
Run Code Online (Sandbox Code Playgroud)
docker-compose.yml:
image:
name: docker/compose:latest
services:
- docker:dind
stages:
- deploy
deploy:
stage: deploy
only:
- …Run Code Online (Sandbox Code Playgroud) 我正在使用持久卷声明将数据存储在容器中:
kind: PersistentVolumeClaim
apiVersion: v1
metadata:
name: test-pvc
labels:
type: amazonEBS
spec:
accessModes:
- ReadWriteOnce
resources:
requests:
storage: 5Gi
Run Code Online (Sandbox Code Playgroud)
规范中的声明:
spec:
volumes:
- name: test-data-vol
persistentVolumeClaim:
claimName: test-pvc
containers:
- name: test
image: my.docker.registry/test:1.0
volumeMounts:
- mountPath: /var/data
name: test-data-vol
Run Code Online (Sandbox Code Playgroud)
当我第一次启动它时,这个卷安装正确。但是当我尝试更新容器映像时:
- image: my.docker.registry/test:1.0
+ image: my.docker.registry/test:1.1
Run Code Online (Sandbox Code Playgroud)
此卷无法挂载到新 pod:
# kubectl get pods
test-7655b79cb6-cgn5r 0/1 ContainerCreating 0 3m
test-bf6498559-42vvb 1/1 Running 0 11m
# kubectl describe test-7655b79cb6-cgn5r
Events:
Type Reason Age From Message
---- ------ ---- ---- -------
Normal Scheduled …Run Code Online (Sandbox Code Playgroud) 在 K8s 中我正在练习示例6.1。具有两个共享相同卷的容器的 Pod:来自《kubernetes in Action》一书的Fortune-pod.yaml 。在卷概念中,我的 Pod 包含 2 个容器,其中一个容器未运行,请指导我哪里做错了。成功运行 Pod。在检查容器的日志时,我收到以下错误:
Defaulted container "fortune-cont" out of: fortune-cont, web-server
Run Code Online (Sandbox Code Playgroud)
但在 pod 描述事件中,它看起来像这样。
Events:
Type Reason Age From Message
---- ------ ---- ---- -------
Normal Scheduled 40m default-scheduler Successfully assigned book/vol-1-fd556f5dc-8ggj6 to minikube
Normal Pulled 40m kubelet Container image "nginx:alpine" already present on machine
Normal Created 40m kubelet Created container web-server
Normal Started 40m kubelet Started container web-server
Normal Created 39m (x4 over 40m) kubelet Created container fortune-cont …Run Code Online (Sandbox Code Playgroud) 如何在不使用 Windows 的 docker gui 的情况下获取 docker 卷的创建日期。对于 debian linux 来说,没有 GUI。在带有 docker 扩展的 VS Code 中,也无法查看创建日期。
通过检查这是可能的,但如果我有许多具有神秘名称的卷,则很难确定最后创建的是哪一个
Linux 终端有没有一种方便的方法来列出那些已排序的日期?
我尝试检查 ---> docker 卷检查
我有一个运行带有源C的wbadmin的powershell脚本到目标iSCSI卷,该卷由其卷ID(\?\ Volume {xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx})指定.备份本身运行得很好,我只是想在脚本中添加一个异地备份功能.遗憾的是,robocopy无法使用卷ID作为复制作业的源,并将其作为未知参数拒绝.
有没有办法方便地从卷ID获取实际的驱动器号,以便我可以在调用robocopy之前替换它?
"mountvol"的输出看起来非常有前途,但如果有一个PowerShell集成功能,我最好使用它.
我已经尝试过Get-PSDrive和Get-Volume,似乎无法让他们输出VolumeID.
我正在使用Docker for Mac 1.12.1并有一个docker compose文件启动wordpress和mysql服务
撰写文件
version: '2'
services:
db:
container_name: mysql_db
image: mysql:5.7
volumes:
- "./.data/db:/var/lib/mysql"
restart: always
environment:
MYSQL_ROOT_PASSWORD: wordpress
MYSQL_DATABASE: wordpress
MYSQL_USER: wordpress
MYSQL_PASSWORD: wordpress
wordpress:
container_name: wordpress
depends_on:
- db
image: wordpress:latest
links:
- db
ports:
- "8000:80"
restart: always
environment:
WORDPRESS_DB_HOST: db:3306
WORDPRESS_DB_PASSWORD: wordpress
volumes:
- wordpress/:/var/www/html/
volumes:
wordpress:
Run Code Online (Sandbox Code Playgroud)
但是,在成功完成所有操作后,我无法找到Mac上存在命名卷的位置.
MacBookAir:wordpress carlwainwright$ docker volume inspect wordpress_wordpress
[
{
"Name": "wordpress_wordpress",
"Driver": "local",
"Mountpoint": "/var/lib/docker/volumes/wordpress_wordpress/_data",
"Labels": null,
"Scope": "local"
}
]
MacBookAir:wordpress carlwainwright$ ls -l /var/lib/docker/volumes/wordpress_wordpress/_data/ …Run Code Online (Sandbox Code Playgroud) 在我的 Mac 上安装 docker 和 MongoDB 镜像。当我使用 docker run 命令中直接指定的卷启动容器时,即使停止容器后数据也会保留。但当我通过 这样做时,同样不起作用docker-compose.yml。有人可以建议该文件有什么问题docker-compose.yml吗?
当我这样做时,数据会被持久化:
docker run --name mongodb -v /Users/shrap7/projects/mongodb/data:/data/db --rm -d mongo
但是当我尝试同样的操作时docker-compose.yml- 它不会保留数据。
version: '3.4'
services:
mongodb:
image: mongo:latest
container_name: "mongodb"
volumes:
- /Users/shrap7/projects/mongodb/data:/data/db
ports:
- 27017:27017
Run Code Online (Sandbox Code Playgroud)
我尝试使用双引号,尝试相对路径,即./data:/data/db,但没有运气。谢谢。
这并不是数字海洋特有的,如果能够验证这是否是预期的行为,那就太好了。
我正在尝试使用 ElasticSearch本身的 Helm Chart 在 DO 管理的 Kubernetes 集群上设置 ElasticSearch 集群
他们说我需要storageClassName在 a 中指定 avolumeClaimTemplate才能使用托管 kubernetes 服务提供的卷。对于 DO,这是do-block-storages根据他们的文档。似乎也没有必要定义 PVC,舵图应该自己定义。
这是我正在使用的配置
# Specify node pool
nodeSelector:
doks.digitalocean.com/node-pool: elasticsearch
# Shrink default JVM heap.
esJavaOpts: "-Xmx128m -Xms128m"
# Allocate smaller chunks of memory per pod.
resources:
requests:
cpu: "100m"
memory: "512M"
limits:
cpu: "1000m"
memory: "512M"
# Specify Digital Ocean storage
# Request smaller persistent volumes.
volumeClaimTemplate:
accessModes: [ "ReadWriteOnce" ]
storageClassName: …Run Code Online (Sandbox Code Playgroud) volumes ×10
kubernetes ×5
docker ×4
azure ×1
azure-files ×1
date ×1
deployment ×1
drive-letter ×1
gitlab ×1
inspect ×1
kubectl ×1
macos ×1
minikube ×1
mongodb ×1
persistence ×1
powershell ×1
wordpress ×1