尝试使用 kubectl 访问 azure aks 时出错
W0111 13:21:23.866650 172 azure.go:92] WARNING: the azure auth plugin is deprecated in v1.22+, unavailable in v1.26+; use https://github.com/Azure/kubelogin instead. To learn more, consult https://kubernetes.io/docs/reference/access-authn-authz/authentication/#client-go-credential-plugins 这是我在CMD,PowerShell,Git-Bash,Azure Shell&Vscode终端中遇到的错误.如果我转到Azure Portal并使用Web Shell. ,我也会遇到同样的问题. 是的,如果我在Mirantis镜头中使用终端按预期工作的唯一区别是,我在镜头的代理设置中添加了HTTP代
22 2024-04-22
编程技术问答社区
Kubernetes set image缺少资源类型'部署'。
我正在尝试使用以下命令来更新Kubernetes中的图像: kubectl set image deployment/ms-userservice ms-userservice=$DOCKER_REGISTRY_NAME/$BITBUCKET_REPO_SLUG:$BITBUCKET_COMMIT --insecure-skip-tls-verify 但是,当我收到以下错误时: error: the server doesn't have a resource type "deployment" 我检查了我在正确的名称空间中,并且具有名称的吊舱并且正在运行. 我找不到有关此错误的任何有意义的资源. Sidenote:我正在通过Bitbucket和一条管道来进行此操作,这也构建了我要使用的图像. 有什么建议? 解决方案 我怀疑它与用户有关 - 错误消息的帮助不大. @tietjedk是正确的,这只是一个误导性的错误消息.这意味着正在发
12 2024-03-31
编程技术问答社区
kubectl -token=$TOKEN没有以令牌的权限运行。
当我将命令kubectl与--token flag一起使用并指定令牌时,它仍然使用kubeconfig文件的管理员凭据. 这就是我所做的: NAMESPACE="default" SERVICE_ACCOUNT_NAME="sa1" kubectl create sa $SERVICE_ACCOUNT_NAME kubectl create clusterrolebinding list-pod-clusterrolebinding \ --clusterrole=list-pod-clusterrole \ --serviceaccount="$NAMESPACE":"$SERVICE_ACCOUNT_NAME" kubectl create clusterrole list-pod-clusterrole \ --verb=list \ --resource=pods TOKEN=`kubectl get secrets $(ku
34 2024-03-30
编程技术问答社区
云计算构建Bazel错误。"kubectl工具链没有正确配置,所以无法执行应用"
我正在尝试使用因此,我有这个cloudbuild.yaml文件,该文件由Google Cloud Build执行: steps: - name: gcr.io/cloud-builders/bazel args: ['run', '//:kubernetes.apply'] (//:kubernetes只是一个 在我的本地计算机上运行bazel run //:kubernetes.apply工作正常,但是 尽管Google Cloud Build成功了,但它会记录这些错误.因此,配置不应用于我的kubernetes群集: Target //:kubernetes.apply up-to-date: bazel-bin/kubernetes.apply INFO: Elapsed time: 29.863s, Critical Path: 0.14s INFO: 0 processes. INFO: Build completed successfully
34 2024-03-29
编程技术问答社区
当kubectl申请时,所有文件中替换环境变量
假设我们在文件夹中有许多kubernetes配置文件,我们要应用所有文件: kubectl apply -f kubernetes -n MyNamespace 这些文件中的一些包含环境变量,需要首先替换(no stomplating 在Kubernetes中).例如,一些部署yamls包含以下内容: image: myregistry.com/myrepo:$TAG 对于单个YAML文件,可以是完成了 e.g. e.g.通过这样使用EnvSubst: envsubst
32 2024-03-28
编程技术问答社区
每次输入kubectl -all-namespaces的快捷方式
kubectl无法识别命令kubectl --all-namespaces或任何类型的快捷方式以最大程度地减少整个命令的键入. 解决方案 我们可以为全名空间做任何别名 基于这个很棒的答案您可以创建别名,以插入前缀和后缀之间的参数,就像这样: alias kca='f(){ kubectl "$@" --all-namespaces -o wide; unset -f f; }; f' 然后定期使用它: kca get nodes kca get pods kca get svc,sts,deploy,pvc,pv 等. 注::还添加了-o wide以获取娱乐活动,以获取有关通常不命名为nodes和pv的资源的更多详细信息... 其他解决方案 kubectl v1.14中的新事物,您可以使用-A而不是--all-namespaces,例如: kubectl get -A pod (欢喜) 参考: https://kub
8 2024-03-28
编程技术问答社区
你能在不使用bash -c的情况下将环境变量传入kubectl exec吗?
我在一个名为script01的POD中有一个脚本,它可以采用参数. 我通过以下内容运行脚本: POD= runScript="kubectl -n nmspc exec $POD -- script01" $runScript --command "do stuff" 我这样运行的原因是我无法访问在本地计算机上创建脚本,但是我确实可以访问POD上的脚本. 问题是,我想将主机机器的IP传递到POD上,并希望使用环境变量进行此操作.我尝试使用bash -c传递参数,但是当通过变量调用脚本时,它不会附加参数. runScript="kubectl -n nmspc exec $POD -- bash -c \"export curIP=123 && script01\"" ,但是如果我运行它,它确实可以 $runScript --command "do stuff" 如何将环境变量传递给POD,但仍然可以通过变量调用脚本? 解决方案
18 2024-03-28
编程技术问答社区
需要对kubectl stdin和pipe进行一些解释
我是Kubectl的每日用户,但不是Linux的专家.最近,我需要在部署后编辑某些服务类型,因此搜索并使用了Kubectl cat yaml | kubectl replace -f - service/tracs-pool-1sv replaced ,但我不明白为什么最后一个简短的破折号 -. 文档只说: 根据将JSON传递到Stdin的JSON替换POD. 我搜索并找到了 this 如此问题不读stdin 的命令(我对吗?). 我尝试了 cat yaml |xargs kubectl replace -f 但返回错误: the path "apiVersion:" does not exist 那么,为kubectl 构建的结尾短仪表性( - )语法是吗?还是Linux bash stdin管道的一些更 语法? 有人可以解释为什么Xargs在这里不起作用,我必须在末尾放一个短仪表( - )? 解决方案 这是一个相当普遍但不是通用的,
26 2024-03-28
编程技术问答社区
在pod中与kubectl一起执行bash命令?
我的问题很简单. 如何在吊舱中执行bash命令?我想用一个bash命令做所有事情. [root@master ~]# kubectl exec -it --namespace="tools" mongo-pod --bash -c "mongo" Error: unknown flag: --bash 所以,命令被简单地忽略. [root@master ~]# kubectl exec -it --namespace="tools" mongo-pod bash -c "mongo" root@mongo-deployment-78c87cb84-jkgxx:/# 左右. [root@master ~]# kubectl exec -it --namespace="tools" mongo-pod bash mongo Defaulting container name to mongo. Use 'kubectl describe pod/mongo-
10 2024-03-27
编程技术问答社区
如何使用Kubectl Exec在容器上运行背景过程?
我试图在具有kubectl的容器内执行Python程序,如下所示(kubectl命令是从本地机器运行的): kubectl exec -it -- bash -c "cd some-dir && (python xxx.py --arg1 abc &)" 当我登录到容器中并检查ps -ef时,我看不到此过程正在运行.另外,kubectl命令本身也没有输出. kubectl命令发布正确吗? 有更好的方法可以实现相同的方法吗? 如何查看正在运行的背景过程中打印出的输出/日志? 如果我需要在一段时间后停止此背景过程,那么最好的方法是什么? 解决方案 nohup wikipedia页面可以帮助您;您需要重定向所有三个IO流(Stdout,Stdin和Stderr) - yes的示例: kubectl exec pod -- bash -c "yes > /dev/null 2> /dev/null &" nohup在上述情况
28 2024-03-27
编程技术问答社区
与Azure ACS断开连接,形成本地机器
我使用以下命令拉了azure acs凭据,我可以从本地机器上的azure上与kubernetes machine进行通信 az acs kubernetes get-credentials --resource-group= --name= ,但是现在我想断开此连接,以便我的kubctl可以与其他机器连接,它可以是本地或任何其他机器(我试图与本地连接). ,但是每次我运行kubectl command它都与Azure ACS 通信 解决方案 对于您的方案,我们可以使用kubectl config use-context CONTEXT_NAME将默认集群切换为其他人,以此方式,我们可以切换到另一个K8S群集. 我们可以使用此命令列出K8S上下文: root@shui:~# kubectl config get-contexts CURRENT NAME
18 2024-03-26
编程技术问答社区
如何在Kubernetes POD(Azure Devops发布管道)内将文件从一个目录复制或移动到另一个目录?
我想将Azure管道中系统工作目录中可用的文件移动到Kubernetes Pod. 方法一(kubectl cp命令) kubectl cp d:\ a \ r1 \ a \ test-files \ westus \ test.txt/test-745f6564dd:/inetpub/wwwroot/ d:\ a \ r1 \ a \ test-files \ westus \ test.txt-我的系统工作目录文件位置 (名称空间)/test-745f6564dd:/inetpub/wwwroot/-kubernetes pod location 我尝试使用kubectl cp命令,但面临错误. error: one of src or dest must be a local file specification Azure DevOps中的两个命令行工具 甚至我尝试使用命令行将文件从一个目录复制到另一个目录. cd C:\in
18 2024-03-25
编程技术问答社区
错误:当从WSL尝试时,不存在名称为 "Aks_cluster_name "的环境。
我正在尝试从Windows子系统中部署Kubernetes管道. 我能够运行这些命令 az login az account set --subscription Azure.NPE.Riviera az aks get-credentials --resource-group RivieraRG --name RivieraAksCls0 当我运行以下命令 时 kubectl config use-context RivieraAksCls0 它给了我 error: no context exists with the name: "RivieraAksCls0" 我如何解决此问题? (注意:我都有所有权限,并且能够从PowerShell运行上述命令) 解决方案 我已经在环境中进行了测试.该错误的原因是.kube/config文件是在Windows中创建的,而不是在WSL中创建的. .kube/config文件需要复制到WSL. 请
22 2024-03-25
编程技术问答社区
无法从Kubernetes获取apiVersions。无法检索服务器API的完整列表
尝试部署应用程序时会出现错误: Error: UPGRADE FAILED: could not get apiVersions from Kubernetes: unable to retrieve the complete list of server APIs: metrics.k8s.io/v1beta1: the server is currently unable to handle the request kubectl api-resources 的输出构成了一些资源,最后有相同的错误. 环境:Azure Cloud,AKS服务 解决方案 解决方案: 我遵循的步骤是: kubectl get apiservices:如果错误 - 服务器服务降低了错误 crashloopbackoff 尝试遵循步骤2 apiservice/" service_name" .对我来说是 v1beta1.metrics.k8s.io . kubectl
20 2024-03-25
编程技术问答社区
服务器中的错误(禁止):禁止PODS:用户无法在集群范围内的API组中列出资源" POD"
我的私人AKS群集仅在jumphost上使用kubectl的root用户访问.但是对于非根本用户,它会引发以下错误消息: someuser@jump-vm$ kubectl get pods -A Error from server (Forbidden): pods is forbidden: User "XX-XX-XX-XX-XX" cannot list resource "XX" in API group " " at the cluster scope 如何解决此错误? 解决方案 在这种情况下,解决方案是将旧配置从$HOME/.kube/中删除,并在az login之后对其进行重新调整. 其他解决方案 似乎正在访问私人AKS群集的Azure VM被设置为自动重新启动,这引起了kubectl或kubelogin的某些问题. 我遵循以下步骤 - root以及非root用户,kubectl成功工作. root@jump-vm# cd ~ && cd
18 2024-03-24
编程技术问答社区
如何在AKS上使用kubectl设置kube-proxy?
我继续读取为Kube-Proxy提供参数的文档,但不能解释如何使用这些参数.我使用Azure-CLI程序使用az aks create创建群集,然后获得凭据并使用kubectl.到目前为止,我所做的一切都涉及服务和部署等等,但是我无法弄清楚所有这些Kube-Proxy的东西都适合所有这些. 我已经搜索了几天.我已经与AKS在GitHub上打开了问题问题.我在Kubernetes Slack频道上问过,但是没有人回应. 解决方案 kube-proxy在所有kubernetes节点上以kubernetes kube-proxy C2> 其配置存储在Kubernetes $ kubectl -n kube-system edit daemonset kube-proxy 或 $ kubectl -n kube-system edit configmap kube-proxy 有关kube-proxy命令行选项的参考,您可以参考在这里.
34 2024-03-24
编程技术问答社区
AWS ECR PULL没有基本的认证凭证
我正在用Terraform部署Azure K8S群集,并且该图像托管在Amazon ECR中. 部署在图像上失败了ECR,并带有以下错误: Failed to pull image "tooot.eu-west-1.amazonaws.com/app-t:latest": rpc error: code = Unknown desc = Error response from daemon: Get https://tooot.eu-west-1.amazonaws.com/v2/app-t/manifests/latest: no basic auth credentials 以下是Terraform模板中我的Kuberentes资源 metadata { name = "terraform-app-deployment-example" labels { test = "app-deployment" } } spec
16 2024-03-24
编程技术问答社区
Kubectl配置视图给出空的结果
配置存储在〜/.kube/config中.但是,当我使用以下命令时,它给出了空的结果. kubectl config view 输出: apiVersion: v1 clusters: [] contexts: [] current-context: "" kind: Config preferences: {} users: [] 解决方案 为了确保,尝试运行kubectl config view --kubeconfig . 确保您的$KUBECONFIG是空的,(或指向~/.kube/config). 如果您通过snap安装kubectl可能是一个沙箱问题. 其他解决方案 我已经在同样的问题上挣扎了几天.我的Linode群集的Kubeconfig根本无法使用. kubectl config view -v 8(冗长的最大)给了我这个输出: I0312 10:01:07.513754 1636
18 2024-03-24
编程技术问答社区
无法连接到服务器:拨号tcp:查找<服务器位置>:无此主机
我开始为我们的应用程序构建一个Kubernetes群集.我们正在为云服务使用Azure,因此我的K8S群集是使用AK构建的. AKS群集是使用Azure的门户接口创建的.它有一个节点,我正在尝试创建一个带有一个容器以部署到节点的吊舱.我当前被困的地方正在尝试连接到PowerShell的AKS群集. 我采取的步骤是: az login (followed by logging in) az account set --subscription az aks get-credentials --name --resource-group kubectl get nodes 输入最后一行后,我留下了错误:无法连接到服务器:拨号TCP:查找:没有这样的主机 我也遇到了在So和其他论坛上发现的其他一些兔子洞,但老实说,我正在寻找一种直接的方式来访问我的集群,然后再将其复杂化
22 2024-03-24
编程技术问答社区
在哪里为pod内的kubectl命令定义/设置默认命名空间?
背景:在Azure Aks中有群集A和群集B.创建一个名为 agent 在命名空间 test test 中运行Linux容器的POD( non-devault namespace).在Linux容器中,安装了PWSH和Kubectl. 操作:进入群集A(kubectl exec -it pod/agent -bash)中的pod/agent,以及群集B的get -Credential,Configfile将使用群集名称和用户名,但没有名称空间. 当从POD/Agent连接到群集B时,然后执行kubectl get pods时,命名空间 test 中的资源将返回命名空间中的资源默认. 由于群集B中没有名为 test 的名称空间,因此没有返回资源. 所以我想知道命名空间 test 在pod/agent中定义/设置为默认名称空间. 花了一些时间尝试在github中潜入kubectl代码,没有运气. 我也尝试使用别名,但它仅适用于bash/sh,而不适用于pwsh,因
18 2024-03-24
编程技术问答社区