Ошибка сервера (NotFound): pods $(kubectl не найден

На машине minikube с Hyper-V я развернул пилу-0, используя файл конфигурации пилообразной формы.

Теперь, когда я проверяю запущенные модули, кажется, что у них есть некоторые по умолчанию, но при попытке подключиться к контейнеру оболочки kubernetes.

C:\Users\Debo>kubectl get --all-namespaces
You must specify the type of resource to get. Use "kubectl api-resources" for a complete list of supported resources.

error: Required resource not specified.
Use "kubectl explain <resource>" for a detailed description of that resource (e.g. kubectl explain pods).
See 'kubectl get -h' for help and examples

C:\Users\Debo>kubectl get pods --all-namespaces
NAMESPACE              NAME                                         READY   STATUS    RESTARTS   AGE
default                sawtooth-0-65d547498c-mfrsb                  7/7     Running   1          120m
kube-system            coredns-6955765f44-b684l                     1/1     Running   0          122m
kube-system            coredns-6955765f44-tc4vg                     1/1     Running   0          122m
kube-system            etcd-minikube                                1/1     Running   0          121m
kube-system            kube-addon-manager-minikube                  1/1     Running   0          121m
kube-system            kube-apiserver-minikube                      1/1     Running   0          121m
kube-system            kube-controller-manager-minikube             1/1     Running   0          121m
kube-system            kube-proxy-t7nhs                             1/1     Running   0          122m
kube-system            kube-scheduler-minikube                      1/1     Running   0          121m
kube-system            storage-provisioner                          1/1     Running   0          122m
kubernetes-dashboard   dashboard-metrics-scraper-7b64584c5c-b8t7s   1/1     Running   0          122m
kubernetes-dashboard   kubernetes-dashboard-79d9cd965-pn94z         1/1     Running   0          122m

C:\Users\Debo>kubectl get pods
NAME                          READY   STATUS    RESTARTS   AGE
sawtooth-0-65d547498c-mfrsb   7/7     Running   1          120m

C:\Users\Debo>kubectl exec -it $(kubectl get pods | awk "/sawtooth-0/ {print $1}") --container sawtooth-shell -- bash
awk: /sawtooth-0/ {print $1})
awk:                        ^ syntax error
errcount: 1
Error from server (NotFound): pods "$(kubectl" not found

C:\Users\Debo>

person debo karmakar    schedule 29.12.2019    source источник
comment
Попробуйте команду awk в одинарных кавычках - awk '/sawtooth-0/ {print $1}' или сделайте awk "/sawtooth-0/ {print \$1}"   -  person Inian    schedule 29.12.2019
comment
``` C:\Users\Debo›kubectl exec -it $(kubectl get pods | awk '/sawtooth-0/ {print $1}') --container sawtooth-shell -- bash awk: '/sawtooth-0/ awk: ^ неверный символ ''' в выражении Ошибка сервера (NotFound): pods $(kubectl не найден C:\Users\Debo›kubectl exec -it $(kubectl get pods | awk /sawtooth-0/ {print \$1 }) --container sawtooth-shell -- bash awk: /sawtooth-0/ {print \$1}) awk: ^ обратная косая черта не последний символ в строке Ошибка сервера (NotFound): pods $(kubectl не найден ``` не рабочий братан   -  person debo karmakar    schedule 29.12.2019
comment
Это похоже на командную строку Windows, но с синтаксисом оболочки Unix Bourne. Какую оболочку вы на самом деле используете, и поддерживает ли она синтаксис подстановки оболочки Bourne $(command)?   -  person David Maze    schedule 29.12.2019
comment
(kubectl get pods -o name может быть более надежным, чем этот вызов awk; также рассмотрите возможность фильтрации по метке kubectl get pods -l app=sawtooth или аналогичной, чтобы избежать необходимости шага awk/grep/sed.)   -  person David Maze    schedule 29.12.2019
comment
Чего именно вы хотите добиться? Kubernetes имеет множество встроенных команд. Если вы хотите подключиться к конкретному контейнеру из пилообразного модуля, вы можете просто использовать kubectl exec -ti sawtooth-0-65d547498c-mfrsb -c <container_name> /bin/bash   -  person PjoterS    schedule 30.12.2019


Ответы (1)


Насколько я понимаю ваш вариант использования, вы пытаетесь отфильтровать модуль пилообразной формы-0 из списка модулей Give в пространстве имен, а затем открыть интерактивный сеанс для контейнера, работающего внутри него, где вы знаете имя контейнера.

Итак, чтобы решить выше, я взял прикрепленный файл конфигурации пилообразного зуба и запустил два его экземпляра пилообразного-0 и пилообразного-1 вместе с несколькими фиктивными модулями, затем я использую эту команду в оболочке Windows Power для фильтрации и подключения к контейнеру на пилообразном-0 стручок

Все нижеизложенное было сделано при условии, что вам нужен kubectl, работающий на Windows PowerShell

PS C:\Users\winuser> kubectl get pods
NAME                          READY   STATUS    RESTARTS   AGE
busybox                       1/1     Running   0          4m18s
nginx                         1/1     Running   0          10m
sawtooth-0-7f584587cf-8jfwk   7/7     Running   0          19m
sawtooth-1-6ccd4494-kq24n     7/7     Running   0          18m

Подключение к пилозубу-0

PS C:\Users\winuser> kubectl exec -it $(kubectl get pods --no-headers -o custom-columns=":metadata.name" | findstr -i sawtooth-0) --container sawtooth-shell -- bash
root@sawtooth-0-7f584587cf-8jfwk:/# whoami
root
root@sawtooth-0-7f584587cf-8jfwk:/# date
Thu Jan 16 11:57:22 UTC 2020
root@sawtooth-0-7f584587cf-8jfwk:/# exit
exit
command terminated with exit code 130

Подключение к пилозубу-1

PS C:\Users\winuser> kubectl exec -it $(kubectl get pods --no-headers -o custom-columns=":metadata.name" | findstr -i sawtooth-1) --container sawtooth-shell -- bash
root@sawtooth-1-6ccd4494-kq24n:/# date
Thu Jan 16 12:17:33 UTC 2020
person DT.    schedule 16.01.2020
comment
просто оффтоп - кажется, kubectl exec требует имя контейнера (вне зависимости от того, указали мы или нет). Разве нет способа просто подключить модуль (а не контейнер)? - person Nag; 18.03.2020