标签: kubectl

如何更改 kubectl top 的间隔?

我想知道如何更改kubectl top监视 Pod 的时间间隔。目前它的更新速度非常慢(我认为超过 15 秒),我希望获得 pod 资源使用情况的最新值。

我知道我可以使用其他一些工具,例如 grafana、prometheus 等。但是当我在终端中工作时,我喜欢在同一环境中运行一些简单的监控工具。

monitoring kubernetes kubectl kubernetes-pod

1
推荐指数
1
解决办法
1万
查看次数

由于身份验证问题,在连接 Amazon EKS 集群的 AWS CodeBuild 上执行 kubectl 不起作用

kubectl version在 CodeBuild 上打印错误...

\n\n
[Container] 2019/08/26 04:07:32 Running command kubectl version \nClient Version: version.Info{Major:"1", Minor:"15", GitVersion:"v1.15.0", GitCommit:"e8462b5b5dc2584fdcd18e6bcfe9f1e4d970a529", GitTreeState:"clean", BuildDate:"2019-06-19T16:40:16Z", GoVersion:"go1.12.5", Compiler:"gc", Platform:"linux/amd64"} \nerror: You must be logged in to the server (the server has asked for the client to provide credentials)\n
Run Code Online (Sandbox Code Playgroud)\n\n
\n

错误:您必须登录到服务器(服务器已要求客户端提供凭据)

\n
\n\n

我正在使用 Amazon EKS 集群。\n似乎缺少一些身份验证设置...?

\n\n

我做了什么:

\n\n
    \n
  1. codebuild-hoge-service-role设置代码构建项目(创建新的服务角色)。
  2. \n
  3. 将策略添加eks:DescribeCluster到角色作为内联策略,因为aws eks update-kubeconfig需要它。
  4. \n
  5. 编辑以在本地设备上configmap/aws-auth绑定角色和 RBAC ,添加新配置:kubectl edit -n kube-system configmap/aws-authmapRoles
  6. \n
\n\n …

amazon-iam kubernetes kubectl aws-codebuild amazon-eks

1
推荐指数
1
解决办法
3130
查看次数

需要 kubectl jsonpath 参数来获取按字符串索引的数组条目

我有一些脚本将“kubectl ... -o json”通过管道传输到“jq”。我已经将其中的许多事件转换为使用 kubectl 的“jsonpath”参数,这样我就可以跳过 jq 步骤。

由于标点符号问题,我无法转换其中一组。原来的行看起来像这样:

kubectl ... -o json | jq -r '.data["application.properties"]'
Run Code Online (Sandbox Code Playgroud)

在 json 中,有一个“数据”映射,其键的名称中可以包含句点,因此我必须将其索引为数组,并以名称作为键。使用 jq 效果很好。

将其简单地转换为 jsonpath 看起来像这样:

kubectl ... -o=jsonpath="{.data["application.properties"]}"
Run Code Online (Sandbox Code Playgroud)

这失败了:

error: error parsing jsonpath {.data[application.properties]}, invalid array index application.properties
Run Code Online (Sandbox Code Playgroud)

这似乎不是一个引用问题,因为它清楚地检测到我尝试的数组索引是什么,它只是不允许我使用它。

有没有办法完全用 jsonpath 来做到这一点?

kubectl

1
推荐指数
1
解决办法
1769
查看次数

端点IP与服务IP

我创建了一个 POD 并将其公开为 service\xc2\xa0 使用以下命令:

\n\n

\xc2\xa0

\n\n
kubectl run nginx --image=nginx --restart=Never --port=80 --expose\n
Run Code Online (Sandbox Code Playgroud)\n\n

当我执行以下命令时,我得到两个不同的 IP\xc2\xa0addresses。下面的IP地址分别代表什么?在集群中调用我的服务时,其他服务应使用哪个 IP。

\n\n
master $ kubectl get ep nginx\n\nNAME\xc2\xa0 \xc2\xa0 ENDPOINTS\xc2\xa0 \xc2\xa0 \xc2\xa0 AGE\n\nnginx\xc2\xa0 \xc2\xa010.40.0.1:80\xc2\xa0 \xc2\xa011m\n\nmaster $ kubectl get svc nginx\n\nNAME\xc2\xa0 \xc2\xa0 TYPE\xc2\xa0 \xc2\xa0 \xc2\xa0 \xc2\xa0 CLUSTER-IP\xc2\xa0 \xc2\xa0 \xc2\xa0 EXTERNAL-IP\xc2\xa0 \xc2\xa0PORT(S)\xc2\xa0 \xc2\xa0AGE\n\nnginx\xc2\xa0 \xc2\xa0ClusterIP\xc2\xa0 \xc2\xa010.103.78.253\xc2\xa0 \xc2\xa0<none>\xc2\xa0 \xc2\xa0 \xc2\xa0 \xc2\xa0 80/TCP\xc2\xa0 \xc2\xa0 12m\n
Run Code Online (Sandbox Code Playgroud)\n

kubernetes kubectl

1
推荐指数
1
解决办法
1504
查看次数

GCP/GKE 添加网络标签

我正在尝试找到一种方法来改善 GCP 中的基础设施即代码情况。我的希望是我可以

  1. 根据添加的目标标签创建防火墙规则白名单
  2. 使目标标签成为部署 yaml 配置的一部分。

我希望通过在部署中添加标签,我可以让它自动将这些标签应用到它创建的任何计算资源或负载均衡器。这样,terraform 就可以创建适用于这些标签的防火墙规则。

我是否以错误的方式处理这个问题,或者有什么办法可以做到这一点?这既涉及自动化防火墙规则管理,也涉及清理可能干扰操作的不必要规则。

yaml google-kubernetes-engine terraform kubectl infrastructure-as-code

1
推荐指数
1
解决办法
5196
查看次数

仅检索 pod 计数,而不在 kubernetes 中列出

在具有 100 个 pod 的环境中,每个 pod 都有自己的标签“env=<>”。当我使用命令“kubectl get pods --selector env=dev”时,它会列出 36 个 pod。但是,我只对计数感兴趣,即 36 个,并且不希望列出 pod。我该如何做完成这个?

kubernetes kubectl kubernetes-pod

1
推荐指数
1
解决办法
2806
查看次数

从本地计算机访问 Kubernetes API

我希望从本地计算机访问 Kubernetes API。我正在尝试使用 kubernetes Rest API 获取 pod 列表。

我在Google Cloud上创建了一个 kubernetes 集群和一些 pod 。

在我的本地 Windows 计算机上,我安装了 gcloud sdk 和 kubectl 组件。我使用以下方式连接到我的集群:

gcloud container clusters get-credentials my-cluster --region us-central1 --project my-project
Run Code Online (Sandbox Code Playgroud)

我可以使用以下命令获取 pod 列表kubectl get pods

不过,我想使用 kubernetes Rest API 获取 pod 列表。

GET https://kubernetes.default/api/v1/namespaces/default/pods
Authorization: Bearer my_access_token
Run Code Online (Sandbox Code Playgroud)

但我认为该请求没有得到通过。

在邮递员中,我收到错误:

Error: tunneling socket could not be established, cause=socket hang up

或者在 Python 中使用 requests 库(来自我的本地计算机),我收到错误

HTTPSConnectionPool(host='kubernetes.default', port=443): Max retries exceeded with url: /api/v1/namespaces/default/pods (Caused by NewConnectionError('<urllib3.connection.HTTPSConnection …

google-cloud-platform kubernetes google-kubernetes-engine kubectl

1
推荐指数
1
解决办法
2139
查看次数

在金丝雀部署策略中,将特定用户重定向到具有新版本的 Pod

我是 kubernetes 的新手,只是在 k8s 上进行了很少的研发。正在检查不同的部署策略,例如滚动更新、重新创建、蓝绿和金丝雀。如果我是正确的,金丝雀部署背后的想法是向一组用户推出新版本。我的问题让我的团队拥有开发人员和测试团队。每当测试团队尝试访问应用程序时,它应该重定向到新版本的应用程序,这可能吗?或者金丝雀仅用于让 2 个版本的应用程序与一项服务同时运行?

canary-deployment kubernetes kubectl

1
推荐指数
1
解决办法
965
查看次数

是否有 kubectl 命令可以在不使用 import yaml 文件选项的情况下创建 kafka 主题?

我已经在 kubernetes 上部署了 strimzi kafka,并且在本地也安装了 kube。但每次我想要在 kafka 中创建一个新主题时,我都需要通过 rancher 导入 yaml 文件并提供主题名称来创建一个主题。

有没有办法直接通过 kubectl 命令创建 kafka 主题?

这些是我用来运行 kafka 的命令:

Producer: kubectl run kafka-producer1 -ti --image=strimzi/kafka:0.18.0-kafka-2.4.0 --rm=true --restart=Never -- bin/kafka-console-producer.sh --broker-list 11.23.41.32:31025 --topic topic-name

Consumer: kubectl run kafka-consumer1 -ti --image=strimzi/kafka:0.18.0-kafka-2.4.0 --restart=Never -- bin/kafka-console-consumer.sh --bootstrap-server 11.23.41.32:31025 --topic topic-name --from-beginning

apache-kafka kubernetes kubectl strimzi

1
推荐指数
1
解决办法
9131
查看次数

kubectl get service --all-namespace 通过“Ready”匹配“Available”过滤掉

寻找查询/过滤器以仅列出某些部署:如果 AVAILABLE 列与 READY 匹配

例子:

NAMESPACE NAME READY UP-TO-DATE AVAILABLE
app1      app1 1/1    1          1
app2      app2 2/2    2          2
app3      app3 0/0    0          0
Run Code Online (Sandbox Code Playgroud)

基本上只是为了查看实际运行 app1 和 app2 的任何内容应该从查询中显示。

kubernetes kubectl

1
推荐指数
1
解决办法
4126
查看次数