我尝试在docker-registry控制器后面的Kubernetes集群中设置nginx-ingress。问题是,当我试图将图像推入私有注册表时,它告诉我:
获取https://registry.local/v2/:x509:证书对ingress.local有效,而不是对registry.local有效
当我curl它的时候,我从入口的后端- 404得到响应。
这是入口清单:
kind: Ingress
apiVersion: extensions/v1beta1
metadata:
name: docker-ingress
annotations:
kubernetes.io/ingress.class: "nginx"
spec:
tls:
- hosts: [ 'registry.local' ]
- secretName: registry
rules:
- host: registry.local
http:
paths:
- backend:
serviceName: docker-registry
servicePort: 5000
path: /这是码头登记清单:
kind: Deployment
apiVersion: extensions/v1beta1
metadata:
labels:
app: docker-registry
name: docker-registry
spec:
replicas: 1
selector:
matchLabels:
app: docker-registry
template:
metadata:
labels:
app: docker-registry
spec:
containers:
- command:
- /bin/registry
- serve
- /etc/docker/registry/config.yml
env:
- name: REGISTRY_HTTP_ADDR
value: 0.0.0.0:5000
- name: REGISTRY_STORAGE_FILESYSTEM_ROOTDIRECTORY
value: /var/lib/registry
- name: REGISTRY_HTTP_TLS_CERTIFICATE
value: /certs/ca.crt
- name: REGISTRY_HTTP_TLS_KEY
value: /certs/domain.key
image: registry:2.6.2
imagePullPolicy: IfNotPresent
name: docker-registry
ports:
- containerPort: 5000
name: http
protocol: TCP
volumeMounts:
- mountPath: /var/lib/registry
name: image-store
- mountPath: /certs
name: certs
volumes:
- name: image-store
emptyDir: {}
- name: certs
configMap:
name: certs
---
kind: Service
apiVersion: v1
metadata:
labels:
app: docker-registry
name: docker-registry
spec:
ports:
- name: http
port: 5000
protocol: TCP
targetPort: 5000
selector:
app: docker-registry
type: ClusterIP塞帕雷利,女主人和码头登记员,工作很好,但不要在一起。
从入口控制器日志中找不到任何值。
发布于 2019-08-23 16:04:54
首先,404错误是kubernetes中的资源错误。这意味着容器不是由第一个脚本创建的。即使它是创建的,并且您可以看到它,那么您的标签在第二个脚本中是错误的。
我建议你检查两个YAML脚本的匹配标签。因此,在您的例子中,我可以看到,在第一个脚本的规范部分中,匹配标签是docker-注册表,但是在第二个脚本中,我没有看到任何docker-注册表。我认为,在您的元数据中,入口脚本的部分应该有"name =“而不是”name=docker“。
https://devops.stackexchange.com/questions/4640
复制相似问题