Kubernetes, как работает Kubectl exec и как его устранить - PullRequest
0 голосов
/ 03 мая 2018

Может кто-нибудь поделиться, как работает kubectl exec, например технический обзор. а также способы ее устранения.

Например, у меня возникает следующая проблема: при попытке подключиться к модулю:

kubectl.exe: I0502 04: 25: 18.562064 7288 loader.go: 357] Конфиг загружается из файла C: \ Users \ u615648 / .kube / config В строке: 1 символ: 1 +. \ kubectl.exe exec dataarchives-service-264802370-mjwcl date -n fdm- ... + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~~~~~ + CategoryInfo: NotSpecified: (I0502 04:25:18 .... 48 / .kube / config: String) [], RemoteException + FullyQualifiedErrorId: NativeCommandError

I0502 04: 25: 18.636776 7288 round_trippers.go: 414] ПОЛУЧИТЬ https://fdmmgmt.uksouth.cloudapp.azure.com/api/v1/namespaces/fdm-development/pods/dataarchives-service-264802370-mjwcl I0502 04: 25: 18.636776 7288 round_trippers.go: 421] Заголовки запроса: I0502 04: 25: 18.636776 7288 round_trippers.go: 424] Принять: application / json, / I0502 04: 25: 18.636776 7288 round_trippers.go: 424] Пользователь-агент: kubectl.exe / v1.9.3 (windows / amd64) kubernetes / d283541 I0502 04: 25: 18.716758 7288 round_trippers.go: 439] Статус ответа: 200 ОК за 79 миллисекунд I0502 04: 25: 18.716758 7288 round_trippers.go: 442] Заголовки ответа: I0502 04: 25: 18.716758 7288 round_trippers.go: 445] Тип содержимого: application / json I0502 04: 25: 18.716758 7288 round_trippers.go: 445] Длина контента: 3167 I0502 04: 25: 18.716758 7288 round_trippers.go: 445] Дата: ср., 02 мая 2018 г. 04:25:18 GMT I0502 04: 25: 18.717872 7288 request.go: 873] Тело ответа: { "Вид": "Под", "apiVersion": "v1", "метаданные": { "имя": "dataarchives-сервис-264802370-mjwcl", "generateName": "да taarchives-сервис-264802370 - " "пространство имен": "FDM-девелопмент", "selfLink": "/ API / v1 / пространств имен / FDM-разработка / стручки / dataarchives-сервис-264802370-mjwcl", "UID":" eeb7d14f-49 5e-11e8-9d96-002248014205" , "resourceVersion": "15681866", "creationTimestamp": "2018-04-26T14: 34: 31Z", "метка": { "приложение": "dataarchives", "кокон-шаблон -hash ":" 264802370 "}," ANNOT ations ": {" kubernetes.io/created-by":"{\"kind\":\"SerializedReference\",\"apiVersion\":\"v1\",\"reference\":{\"kind \ ": \" ReplicaSet \ "\ "пространства имен \": \ "FDM-разработка \", \" п AME \ ": \" dataarchives-сервис-264802370 \ "\ "UID \": \ "eeaf949c-495e-11e8-9d96-002248014205 \", \ "apiVersion \": \ "расширений \", \" resourceVersion \ ": \" 15075652 \ "}} \ п"}, "ownerRefe rences ": [{" apiVersion ":" Расширения / v1beta1" , "вид": "ReplicaSet", "имя": "dataarchives-сервис-264802370", "UID": "eeaf949c-495e-11e8-9d96-002248014205" , «контроллер»: верно, "б lockOwnerDeletion ": истинно}]}," спекуляция ": {" объемы ": [{" Имя ":" uploadsfileshare [усеченные 2143 символа] I0502 04: 25: 18,908749 7288 round_trippers.go: 414] POST https://fdmmgmt.uksouth.cloudapp.azure.com/api/v1/namespaces/fdm-development/pods/dataarchives-service-26480237 0-mjwcl / Exec? Команда = дата и команда = CMD & контейнер = dataarchives & контейнер = dataarchives & STDERR = истина и стандартный вывод = истина I0502 04: 25: 18.908749 7288 round_trippers.go: 421] Заголовки запроса: I0502 04: 25: 18.908749 7288 round_trippers.go: 424]
X-Stream-Protocol-Version: v4.channel.k8s.io I0502 04: 25: 18.908749
7288 round_trippers.go: 424] X-Stream-Protocol-Version: v3.channel.k8s.io I0502 04: 25: 18.908749 7288 round_trippers.go: 424] X-Stream-Protocol-Version: v2.channel.k8s.io I0502 04: 25: 18.908749
7288 round_trippers.go: 424] X-Stream-Protocol-Version: channel.k8s.io I0502 04: 25: 18.908749 7288 round_trippers.go: 424]
Пользователь-агент: kubectl.exe / v1.9.3 (windows / amd64) kubernetes / d283541 I0502 04: 25: 19.086745 7288 round_trippers.go: 439] Статус ответа: 401 Несанкционированный в 177 миллисекунд I0502 04: 25: 19.086745 7288 round_trippers.go: 442] Заголовки ответа: I0502 04: 25: 19.086745 7288 round_trippers.go: 445] Дата: ср., 02 мая 2018 г. 04:25:19 GMT I0502 04: 25: 19.086745 7288 round_trippers.go: 445] Длина контента: 12 I0502 04: 25: 19.086745 7288 round_trippers.go: 445] Тип содержимого: текст / равнина; charset = utf-8 F0502 04: 25: 19.086745 7288helpers.go: 119] ошибка: невозможно обновить соединение: не авторизовано

Помощь оценена.

1 Ответ

0 голосов
/ 19 сентября 2018

Внутри команда kubectl взаимодействует с сервером API Kubernetes через HTTP / SPDY. API-сервер Kubernetes является обычным REST API. В настоящее время Kubernetes использует SPDY, но сопровождающие планируют перейти на HTTP / 2, как только докер позволит им сделать это: https://github.com/kubernetes/kubernetes/issues/7452

Здесь вы можете посмотреть, как команда kubectl вызывает go-client kubernetes для взаимодействия с REST API: https://github.com/kubernetes/kubernetes/blob/e6272b887b81a62e6f06b7fac4b3b61d1c8bf657/pkg/kubectl/cmd/exec/exec.go#L310

Относительно вашей конкретной трассировки стека: «ошибка: невозможно обновить соединение: не авторизован», похоже, вы не авторизованы. Вы можете запускать другие команды с kubectl, такие как "kubectl get po --all-namespaces"?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...