У меня есть свежая установка Ubuntu, свежая установка k3s и свежая загрузка calicoctl. Я установил его следующим образом.
curl -sfL https://get.k3s.io | K3S_KUBECONFIG_MODE="644"\
INSTALL_K3S_EXEC="--flannel-backend=none --cluster-cidr=192.168.0.0/16\
--disable-network-policy --disable=traefik" sh -
kubectl create -f https://docs.projectcalico.org/manifests/tigera-operator.yaml
kubectl create -f https://docs.projectcalico.org/manifests/custom-resources.yaml
curl -o calicoctl -O -L "https://github.com/projectcalico/calicoctl/releases/download/v3.20.2/calicoctl"
Когда я запускаю kubectl, все работает нормально. Когда я запускаю calicoctl, я получаю ошибки сертификата.
# calicoctl применить -f V000_000-host-policy.yaml
Не удалось получить информацию о кластере для проверки несоответствия версий: получить «https://127.0.0.1:6443/apis/crd.projectcalico.org/v1/clusterinformations/default»: x509: сертификат, подписанный неизвестным центром
Используйте --allow-version-mismatch для переопределения.
я скопировал запрос-заголовок-ca.crt
, клиент-ca.crt
и сервер-ca.crt
сертификаты от /var/lib/rancher/k3s/сервер/tls
к /usr/local/share/ca-сертификаты
и применил их с обновление-ca-сертификаты
. Я могу подтвердить, что сертификаты перечислены в /etc/ssl/certs/ca-certificates.crt
.
Кроме того, мой ~/.кубе/конфиг
файл имеет следующее содержимое (я делаю регулярные переустановки, ничего из этого не является конфиденциальным, я надеюсь - поправьте меня, если я ошибаюсь)
апиВерсия: v1
кластеры:
- кластер:
данные центра сертификации: LS0t...LS0K
сервер: https://127.0.0.1:6443
имя: по умолчанию
контексты:
- контекст:
кластер: по умолчанию
пользователь: по умолчанию
имя: по умолчанию
текущий контекст: по умолчанию
вид: Конфигурация
предпочтения: {}
пользователи:
- имя: по умолчанию
пользователь:
данные сертификата клиента: LS0t...LS0K
клиент-ключ-данные: LS0t...LQo=
И у меня есть следующая конфигурация в /etc/cni/net.d/calico-kubeconfig
# Файл Kubeconfig для плагина Calico CNI. Установил calico/node.
апиВерсия: v1
вид: Конфигурация
кластеры:
- название: местное
кластер:
сервер: https://10.43.0.1:443
данные центра сертификации: "LS0t...tLS0K"
пользователи:
- название: бязь
пользователь:
токен: eyJhb...tk4Q
контексты:
- название: бязь-контекст
контекст:
кластер: локальный
Пользователь: Калико
текущий контекст: ситцевый контекст
Я изменил адрес в calico-kubeconfig с 10.43.0.1:443
к 127.0.0.1:6443
но это не имело значения.
Кто-нибудь знает, как обойти это? Является ли ошибка сертификата, которую я вижу, следствием CA или токенов? Curl по тому же адресу также жалуется на CA, поэтому я думаю, что это не связано с токеном.