Я использую образ bitnami kubernetes в AWS экземпляре EC2.
kubectl cluster-info говорит
Kubernetes master is running at https://172.30.0.120:6443
Heapster is running at https://172.30.0.120:6443/api/v1/namespaces/kube-system/services/heapster/proxy
KubeDNS is running at https://172.30.0.120:6443/api/v1/namespaces/kube-system/services/kube-dns:dns/proxy
monitoring-grafana is running at https://172.30.0.120:6443/api/v1/namespaces/kube-system/services/monitoring-grafana/proxy
monitoring-influxdb is running at https://172.30.0.120:6443/api/v1/namespaces/kube-system/services/monitoring-influxdb/proxy
, поэтому я предполагаю, что у меня есть только мастер и нет узла?
Я развернул частный реестр через
apiVersion: apps/v1
kind: Deployment
metadata:
name: registry
namespace: kube-system
spec:
selector:
matchLabels:
app: registry
template:
metadata:
labels:
app: registry
id: "registry"
spec:
containers:
- name: registry
image: registry:2.7.0
ports:
- name: registry-port
containerPort: 5000
volumeMounts:
- mountPath: /var/lib/registry
name: images
- mountPath: /certs
name: certs
- mountPath: /auth
name: auth
env:
- name: REGISTRY_AUTH
value: "htpasswd"
- name: REGISTRY_AUTH_HTPASSWD_REALM
value: "Registry Realm"
- name: REGISTRY_AUTH_HTPASSWD_PATH
value: /auth/htpasswd
- name: REGISTRY_HTTP_TLS_CERTIFICATE
value: /certs/domain.crt
- name: REGISTRY_HTTP_TLS_KEY
value: /certs/domain.key
volumes:
- name: images
hostPath:
path: /home/bitnami/registry/images
- name: certs
hostPath:
path: /home/bitnami/docker_reg_certs
- name: auth
hostPath:
path: /home/bitnami/registry/auth
Я генерирую самоподписанный ssl-ca через openssl и копирую его в /etc/docker/certs.d/[ec2 -insta-domain: port] и в /usr/local/share/ca-certificates/ca.crt и выполните update-ca-Certificates и sudo service docker restart. После этого я вхожу в свой реестр с docker логином [имя домена]: 5000 и ввожу пользователя и пароль. Эта работа. Затем я создаю секрет реестра docker с помощью kubectl create secret generi c my-secret --from-file = .dockerconfigjson = ~ / .docker / config. json --type = kubernetes.io / dockerconfig json
После этого я создаю свое развертывание
kind: Deployment
apiVersion: apps/v1
metadata:
name: app-config-service
namespace: kube-system
spec:
selector:
matchLabels:
app: app-config-service
template:
metadata:
labels:
app: app-config-service
spec:
containers:
- name: app-config-service
image: [AWS-EC2-DomainName]:5000/cloud/app-config-service:latest
ports:
- containerPort: 48000
env:
- name: SPRING_PROFILE
value: docker
- name: SPRING_BOOT_PORT
value: "48000"
- name: KAFKA_BINDER_BROKERS_URL
value: xxxxxxxxxxx:29095
imagePullSecrets:
- name: my-secret
Но когда я пытаюсь запустить это развертывание с помощью kubectl create -f deployment.yml и описывать созданный модуль, я получаю сообщение об ошибке. сделать запрос: Заголовок https: // [имя домена]: 5000 / v2 / cloud / app-config-service / manifest / latest: x509: сертификат, подписанный неизвестным органом
В журнале реестра указано 2020/07 / 14 15:54:01 http: ошибка рукопожатия TLS из 10.32.0.1:37943: удаленная ошибка: tls: плохой сертификат
Если я попытаюсь вручную подключиться к частному репозиторию с помощью curl -X GET https: / / [domainname]: 5000 / v2 / _catalog это работает.
Кто-нибудь знает, что я здесь упускаю или делаю неправильно?
Приветствую
EDIT
Я обнаружил кое-что интересное . Для своих кубернетов я использую среду выполнения контейнера containerd github.com/containerd/containerd v1.3.3 d76c121f76a5fc8a462dc64594aea72fe18e1178
Я редактирую /etc/containered/config.toml, как это * 10
1029, но Я вызываю crictl info, вывод показывает мне следующее
...
...
},
"registry": {
"mirrors": {
"docker.io": {
"endpoint": [
"https://registry-1.docker.io"
]
}
},
...
...
Итак, config.toml
не влияет на используемый реестр моих кубернетов? Есть идеи?