Каков правильный путь к настройке кластера кубернетов с использованием минибука через кубернетов api? На данный момент я не могу найти порт, через который можно получить доступ к кластеру кубернетов.Как получить доступ к API Kubernetes при использовании minkube?
ответ
Выполняется minikube start
будет автоматически настраиваться kubectl
.
Вы можете запустить minikube ip
, чтобы получить IP-адрес, на который включен ваш мини-радио. Сервер API работает по умолчанию 8443.
Update: Для того, чтобы получить доступ к серверу API напрямую, вам нужно использовать пользовательские SSL сертификаты, которые были созданы. по миникубу. Клиентский сертификат и ключ обычно хранятся по адресу: ~/.minikube/apiserver.crt
и ~/.minikube/apiserver.key
. Когда вы делаете запросы, вам придется загрузить их в свой клиент HTTPS.
Если вы используете curl
, используйте --cert
и --key
, чтобы использовать файл сертификата и ключа. Для получения более подробной информации обратитесь к docs.
Самый простой способ получить доступ к API Kubernetes с при запуске minikube является использование
kubectl proxy --port=8080
Вы можете получить доступ к API с
curl http://localhost:8080/api/
Это также позволяет просматривать API в вашем браузер. Начало minikube помощью
minikube start --extra-config=apiserver.Features.EnableSwaggerUI=true
затем начать kubectl proxy
и перейдите к http://localhost:8080/swagger-ui/ в вашем браузере.
Вы можете Доступ к Kubernetes API с завитком непосредственно с помощью
curl --cacert ~/.minikube/ca.crt --cert ~/.minikube/client.crt --key ~/.minikube/client.key https://`minikube ip`:8443/api/
, но, как правило, не существует никаких преимуществ в этом. Общие браузеры недовольны сертификатами, генерируемыми minikube, поэтому, если вы хотите получить доступ к API в своем браузере, вам необходимо использовать kubectl proxy
.
Я прошел множество ответов, но многие из них ошибаются.
Прежде чем мы это сделаем, нам нужен IP-адрес и токен.
Как получить IP: minikube IP Как создать токен:
$export secret=kubectl get serviceaccount default -o json | jq -r '.secrets[].name'
$kubectl get secret $secret -o yaml | grep "token:" | awk {'print $2'} | base64 -D > token
Примечание: base64 использует -D для макинтош, но -d для Linux.
Тогда правильная команда:
#curl -v -k -H --cacert ~/.minikube/ca.crt -H "Authorization: Bearer $(cat ~/YOUR_TOKEN)" "https://{YOUR_IP}:8443/api/v1/pods"
Да, но если вы запрашиваете Апи-сервер, то он будет через ошибку «несанкционированный запрос»! Итак, как преодолеть эту ошибку? – KarateKid
'' kubectl'' вызывает эту ошибку, или вы пытаетесь напрямую обратиться к серверу API (типы завитушек)? – iamnat
Нет, я не использую kubectl, вместо этого прямо пинговая конечные точки API, используя CURL – KarateKid