我想知道如何更改kubectl top监视 Pod 的时间间隔。目前它的更新速度非常慢(我认为超过 15 秒),我希望获得 pod 资源使用情况的最新值。
我知道我可以使用其他一些工具,例如 grafana、prometheus 等。但是当我在终端中工作时,我喜欢在同一环境中运行一些简单的监控工具。
kubectl version在 CodeBuild 上打印错误...
[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)\nRun Code Online (Sandbox Code Playgroud)\n\n\n\n\n错误:您必须登录到服务器(服务器已要求客户端提供凭据)
\n
我正在使用 Amazon EKS 集群。\n似乎缺少一些身份验证设置...?
\n\n我做了什么:
\n\ncodebuild-hoge-service-role设置代码构建项目(创建新的服务角色)。eks:DescribeCluster到角色作为内联策略,因为aws eks update-kubeconfig需要它。configmap/aws-auth绑定角色和 RBAC ,添加新配置:kubectl edit -n kube-system configmap/aws-authmapRoles我有一些脚本将“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 来做到这一点?
我创建了一个 POD 并将其公开为 service\xc2\xa0 使用以下命令:
\n\n\xc2\xa0
\n\nkubectl run nginx --image=nginx --restart=Never --port=80 --expose\nRun Code Online (Sandbox Code Playgroud)\n\n当我执行以下命令时,我得到两个不同的 IP\xc2\xa0addresses。下面的IP地址分别代表什么?在集群中调用我的服务时,其他服务应使用哪个 IP。
\n\nmaster $ 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\nRun Code Online (Sandbox Code Playgroud)\n 我正在尝试找到一种方法来改善 GCP 中的基础设施即代码情况。我的希望是我可以
我希望通过在部署中添加标签,我可以让它自动将这些标签应用到它创建的任何计算资源或负载均衡器。这样,terraform 就可以创建适用于这些标签的防火墙规则。
我是否以错误的方式处理这个问题,或者有什么办法可以做到这一点?这既涉及自动化防火墙规则管理,也涉及清理可能干扰操作的不必要规则。
yaml google-kubernetes-engine terraform kubectl infrastructure-as-code
在具有 100 个 pod 的环境中,每个 pod 都有自己的标签“env=<>”。当我使用命令“kubectl get pods --selector env=dev”时,它会列出 36 个 pod。但是,我只对计数感兴趣,即 36 个,并且不希望列出 pod。我该如何做完成这个?
我希望从本地计算机访问 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
我是 kubernetes 的新手,只是在 k8s 上进行了很少的研发。正在检查不同的部署策略,例如滚动更新、重新创建、蓝绿和金丝雀。如果我是正确的,金丝雀部署背后的想法是向一组用户推出新版本。我的问题让我的团队拥有开发人员和测试团队。每当测试团队尝试访问应用程序时,它应该重定向到新版本的应用程序,这可能吗?或者金丝雀仅用于让 2 个版本的应用程序与一项服务同时运行?
我已经在 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
寻找查询/过滤器以仅列出某些部署:如果 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 的任何内容应该从查询中显示。
kubectl ×10
kubernetes ×8
amazon-eks ×1
amazon-iam ×1
apache-kafka ×1
monitoring ×1
strimzi ×1
terraform ×1
yaml ×1