2016-11-21 4 views
3

Каков правильный путь к настройке кластера кубернетов с использованием минибука через кубернетов api? На данный момент я не могу найти порт, через который можно получить доступ к кластеру кубернетов.Как получить доступ к API Kubernetes при использовании minkube?

ответ

7

Выполняется minikube start будет автоматически настраиваться kubectl.

Вы можете запустить minikube ip, чтобы получить IP-адрес, на который включен ваш мини-радио. Сервер API работает по умолчанию 8443.


Update: Для того, чтобы получить доступ к серверу API напрямую, вам нужно использовать пользовательские SSL сертификаты, которые были созданы. по миникубу. Клиентский сертификат и ключ обычно хранятся по адресу: ~/.minikube/apiserver.crt и ~/.minikube/apiserver.key. Когда вы делаете запросы, вам придется загрузить их в свой клиент HTTPS.

Если вы используете curl, используйте --cert и --key, чтобы использовать файл сертификата и ключа. Для получения более подробной информации обратитесь к docs.

+2

Да, но если вы запрашиваете Апи-сервер, то он будет через ошибку «несанкционированный запрос»! Итак, как преодолеть эту ошибку? – KarateKid

+0

'' kubectl'' вызывает эту ошибку, или вы пытаетесь напрямую обратиться к серверу API (типы завитушек)? – iamnat

+0

Нет, я не использую kubectl, вместо этого прямо пинговая конечные точки API, используя CURL – KarateKid

2

Самый простой способ получить доступ к 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.

1

Я прошел множество ответов, но многие из них ошибаются.

Прежде чем мы это сделаем, нам нужен 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" 

 Смежные вопросы

  • Нет связанных вопросов^_^