我使用命令行kubectl创建configmap,如下所示
kubectl create configmap nginx-config --from-file=./site.conf
在我的site.conf中,我有一个简单的nginx conf
server {
listen 80;
index index.php index.html;
location / {
try_files $uri $uri/ /index.php?$args;
access_log off;
expires max;
}
}
在我的nginx-pod.yaml中我有正常的pod设置
apiVersion: v1
kind: Pod
metadata:
name: www
labels:
app: nginx
spec:
containers:
- name: proxy
image: nginx
ports:
- containerPort: 80
volumeMounts:
- mountPath: /etc/nginx/conf.d
name: nginx-config
volumes:
- name: nginx-config
configMap:
name: nginx-config
当像这样启动pod时
kubectl create -f nginx-pod.yaml
我的吊舱是创建但是他的状态CrashLoopBackOff
2-3秒后但如果我删除了这一行
volumeMounts:
- mountPath: /etc/nginx/conf.d
name: nginx-config
volumes:
- name: nginx-config
configMap:
name: nginx-config
我没有问题
答案 0 :(得分:1)
我最近遇到的问题是site.conf。当nginx加载她的conf时,你的pod正确加载你的配置图你的nginx崩溃结束你的pod崩溃。检查你的site.conf end add de default value like this
server {
listen 80;
listen [::]:80;
root /var/www/html/quickstart/public;
index index.php index.html index.htm index.nginx-debian.html;
server_name example.com www.example.com;
location / {
try_files $uri $uri/ /index.php?$query_string;
}
}
答案 1 :(得分:0)
还有其他东西搞砸了你。我只是简单地复制了你的conf和yaml文件(除了用-n test-namespace运行它以进行分离)并且它完美无缺。
运行正常,跳转到pod,并且site.conf按照预期安装在/etc/nginx/conf.d文件夹中。 Baremetal k8s版本I使用的是1.9.2,配置方面这是正确的。
编辑:在Mac上也尝试使用minikube(客户端1.9.3服务器1.9.0),它也可以正常工作(甚至不是命名空间,完全按照你描述的步骤)。
你能看到处于失败状态的scheduler / api或pod的日志吗?也许它可以为防止它启动的内容提供更多的启示?您是否没有RBAC配置错误或跨命名空间的某些内容会阻止配置映射被读取?