我正在尝试进行nginx部署,在容器创建过程中,我希望创建多个符号链接。但由于某种原因,它不能工作,集装箱崩溃。
apiVersion: apps/v1
kind: Deployment
metadata:
labels:
app: tcc
component: nginx
name: tcc-nginx-deployment
namespace: dev2
spec:
replicas: 1
selector:
matchLabels:
app: tcc
component: nginx
template:
metadata:
labels:
app: tcc
component: nginx
spec:
containers:
- image: nginx
name: nginx
command:
- /bin/sh
- -c
- |
ln -s /shared/apps/ /var/www
rm -r /etc/nginx/conf.d
ln -s /shared/nginx-config/ /etc/nginx/conf.d
ports:
- containerPort: 80
protocol: TCP
volumeMounts:
- mountPath: /shared
name: efs-pvc
volumes:
- name: efs-pvc
persistentVolumeClaim:
claimName: tcc-efs-storage-claim发布于 2021-12-16 10:23:25
容器没有运行,因为在执行command块之后,容器就退出了,这是预期的行为。
与其在yaml模板中使用command中的符号链接(这不是最佳实践解决方案),为什么不使用解决方案内置的Kubernetes,而且根本不使用command块?
有时候,在一个
中共享一个卷用于多个用途是很有用的。
volumeMounts.subPath属性指定引用卷内的子路径,而不是根.
在您的例子中,部署yaml应该如下所示:
apiVersion: apps/v1
kind: Deployment
metadata:
labels:
app: tcc
component: nginx
name: tcc-nginx-deployment
namespace: dev2
spec:
replicas: 1
selector:
matchLabels:
app: tcc
component: nginx
template:
metadata:
labels:
app: tcc
component: nginx
spec:
containers:
- image: nginx
name: nginx
ports:
- containerPort: 80
protocol: TCP
volumeMounts:
- mountPath: /shared
name: efs-pvc
- mountPath: /etc/nginx/conf.d
name: efs-pvc
subPath: nginx-config
- mountPath: /var/www
name: efs-pvc
subPath: apps
volumes:
- name: efs-pvc
persistentVolumeClaim:
claimName: tcc-efs-storage-claim另外,如果您只想为NGINX挂载配置文件,您可以使用ConfigMap而不是卷检查this answer来获取更多信息。
发布于 2021-12-15 15:12:26
创建了符号链接,容器正在退出。
"nginx" "-g" "daemon off;",如下所示:apiVersion: apps/v1
kind: Deployment
metadata:
labels:
app: tcc
component: nginx
name: tcc-nginx-deployment
spec:
replicas: 1
selector:
matchLabels:
app: tcc
component: nginx
template:
metadata:
labels:
app: tcc
component: nginx
spec:
containers:
- image: nginx
name: nginx
imagePullPolicy: IfNotPresent
command:
- /bin/sh
- -c
- |
ln -s /shared/apps/ /var/www
rm -r /etc/nginx/conf.d
ln -s /shared/nginx-config/ /etc/nginx/conf.d
"nginx" "-g" "daemon off;" ; # after creating above symbolic links it will start nginx daemon
ports:
- containerPort: 80
protocol: TCP
volumeMounts:
- mountPath: /shared
name: efs-pvc
volumes:
- name: efs-pvc
persistentVolumeClaim:
claimName: tcc-efs-storage-claimhttps://stackoverflow.com/questions/70364991
复制相似问题