标签: google-kubernetes-engine

Kubernetes掌握用户名和密码

我已经安装了一个kubernetes集群(使用谷歌的容器引擎),我注意到一个服务在主服务器上侦听端口443.试图访问它但它需要用户名和密码,所以任何想法这些凭据是什么?

kubernetes google-kubernetes-engine

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

Google计算引擎和Google容器引擎之间有什么区别?

我想知道Container Engine和Compute Engine之间有什么区别?

如果我在主机上有一个由Groovy和Jetty完成的Jax~rs应用程序,并计划迁移到Google云平台,那么我应该开始使用Google容器还是google compute?

google-compute-engine google-kubernetes-engine

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

kubectl无法连接到Google容器引擎

我已按照安装步骤操作:https: //cloud.google.com/container-engine/docs/tutorials/guestbook#install_gcloud_and_kubectl

Google Container Engine群集已启动并正在运行,gcloud CLI已通过身份验证并可正常运行.

但是kubectl说: "couldn't read version from server: Get http://local host:8080/api: dial tcp 127.0.0.1:8080: connection refused"

我想我需要用来kubectl config set-cluster在GCE上设置与集群的连接.

我在哪里可以找到GCE集群的Kubernetes master的地址?随着gcloud beta container clusters list我看到一些我的群集的主IP.我用过它kubectl config set-cluster.

现在它说: "error: couldn't read version from server: Get http:// 104.197.49.119/api: dial tcp 104.197.49.119:80: i/o timeout"

我是否在正确的轨道上?

额外的陌生感:

  • gcloud container或者gcloud preview container不适合我.只要gcloud beta container

  • 我的群集的MASTER_VERSION是0.21.4,而我的kubectl客户端的版本是GitVersion:"v0.20.2",即使新安装了gcloud.

kubernetes google-kubernetes-engine

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

Kubernetes的动态通配符子域入口

我目前正在GKE上使用Kubernetes,使用Ingress资源在不同的子域上为我的产品的各个部分提供服务.例如:api.mydomain.com,console.mydomain.com,等.

ingress.yml(当前):

apiVersion: extensions/v1beta1
kind: Ingress
metadata:
  name: ingress
spec:
  rules:
  - host: api.mydomain.com
    http:
      paths:
        - backend:
            serviceName: api-service
            servicePort: 80
  - host: console.mydomain.com
    http:
      paths:
        - backend:
            serviceName: console-service
            servicePort: 80
Run Code Online (Sandbox Code Playgroud)

这非常有效,L7 GCE负载均衡器路由到适当的位置.但是,我想要做的是将许多功能分支部署部署为子域,以便在推送到生产之前测试和演示新功能.这些可能类似于new-stylesheet.console.mydomain.comupgraded-algorithm.api.mydomain.com受GitLab CI 环境的启发.

这是每个部署的潜在工作流程:

  1. 创建feature-api-deployment.yml
  2. 创建feature-api-service.yml
  3. 使用新的子域规则更新ingress.yml:feature.api.mydomain.com指定serviceName: feature-api-service

但枚举和维护所有子域 - >服务映射将会因拆除部署而变得混乱,并创建大量的GCE后端(默认配额为5 ......),因此它并不理想.

Kubernetes是否有任何内置的东西可供我处理?像这样的东西是理想的选择基于匹配的子域的目标服务:

ingress.yml(通缉)

apiVersion: extensions/v1beta1
kind: Ingress
metadata:
  name: ingress
spec:
  rules:
  - host: *.api.mydomain.com
    http:
      paths:
        - backend:
            serviceName: {value of …
Run Code Online (Sandbox Code Playgroud)

networking load-balancing kubernetes google-kubernetes-engine

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

为什么Google Cloud在使用ClusterIP时会出现错误

在我的gcloud控制台中,它显示了我定义的入口的以下错误:

同步时出错:评估入口规范时出错:服务"monitoring/kube-prometheus"是"ClusterIP"类型,预期"NodePort"或"LoadBalancer"

我使用traefik作为反向代理(而不是nginx),因此我使用ClusterIP定义入口.据我所知,该过程所有流量都通过traefik服务代理(其中定义了Loadbalancer入口),因此我的所有其他入口应该实际上有一个ClusterIP而不是NodePort或Loadbalancer?

题:

那么为什么Google Cloud警告我它期望NodePort或LoadBalancer?

在此输入图像描述

google-cloud-platform gcloud kubernetes google-kubernetes-engine

16
推荐指数
3
解决办法
4537
查看次数

从 Kubernetes 入口删除路由路径

我在 kubernetes 中部署了名为“test”的服务。服务名称:测试端口:80

有一个名为“/abc”的端点

入口.yaml

apiVersion: extensions/v1beta1
kind: Ingress
metadata:
  name: load-balancer

spec:
  rules:
  - http:
      paths:
      - path: /test/*
        backend:
          serviceName: test
          servicePort: 80
Run Code Online (Sandbox Code Playgroud)

API 调用“ http://ip-address/test/abc ”给出 404 错误。但是端点“/test/abc”工作正常。

路由时我需要跳过“/test”。我如何做到这一点。

google-kubernetes-engine

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

kubectl list / 删除所有已完成的作业

我正在寻找kubectl命令来列出/删除所有已完成的作业

我试过:

kubectl get job --field-selector status.succeeded=1
Run Code Online (Sandbox Code Playgroud)

但我得到:

enfield selector "status.succeeded=1": field label "status.succeeded" not supported for batchv1.Jobter code here
Run Code Online (Sandbox Code Playgroud)

工作时--fieldSelector的可能字段是什么?

有一个更好的方法吗 ?

kubernetes google-kubernetes-engine kubectl kubernetes-pod kubernetes-jobs

16
推荐指数
3
解决办法
2万
查看次数

Kubernetes:创建服务与公开部署

我是 Kubernetes 新手。我正在阅读一些与 Kubernetes 部署相关的教程。我看到两个不同的命令看起来像是在做类似的事情。

  1. 以下命令来自谷歌代码实验室(URL: https: //codelabs.developers.google.com/codelabs/cloud-springboot-kubernetes/index.html ?index=..%2F..index#7 )

    $ kubectl create service loadbalancer hello-java --tcp=8080:8080

  2. 另一个命令与 Kubernetes 站点一起出现在不同的地方(https://kubernetes.io/docs/tutorials/stateless-application/expose-external-ip-address/

$ kubectl expose deployment hello-world --type=LoadBalancer --name=my-service


现在,根据我的理解,这两个命令都是通过负载均衡器从部署创建服务并将它们暴露给外部世界。

我认为同一个任务不会有两个单独的命令。应该有一些我无法理解的差异。

有人可以向我澄清一下吗?

google-cloud-platform kubernetes google-kubernetes-engine

16
推荐指数
2
解决办法
5341
查看次数

不存在作为 Secret 颁发的证书

以下是describeclusterissuercertificate资源的输出。我是 cert-manager 的新手,所以不能 100% 确定它设置正确 - 我们需要使用http01验证但是我们没有使用 nginx 控制器。现在我们只有 2 个微服务,所以面向公众的 IP 地址只属于一个 k8s 服务(负载均衡器类型),该服务将流量路由到一个 pod,其中一个可扩展服务代理容器位于运行应用程序代码的容器前面。使用此设置我无法获得除以下错误之外的任何信息,但是正如我所提到的,我是 cert-manager 和 ESP 的新手,因此这可能配置不正确...

Name:         clusterissuer-dev
Namespace:    
Labels:       <none>
Annotations:  kubectl.kubernetes.io/last-applied-configuration:
API Version:  cert-manager.io/v1beta1
Kind:         ClusterIssuer
Metadata:
  Creation Timestamp:  2020-08-07T18:46:29Z
  Generation:          1
  Resource Version:    4550439
  Self Link:           /apis/cert-manager.io/v1beta1/clusterissuers/clusterissuer-dev
  UID:                 65933d87-1893-49af-b90e-172919a18534
Spec:
  Acme:
    Email:  email@test.com
    Private Key Secret Ref:
      Name:  letsencrypt-dev
    Server:  https://acme-staging-v02.api.letsencrypt.org/directory
    Solvers:
      http01:
        Ingress:
          Class:  nginx
Status:
  Acme:
    Last Registered Email:  email@test.com
    Uri: …
Run Code Online (Sandbox Code Playgroud)

google-kubernetes-engine cert-manager

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

群集管理员的GKE clusterrolebinding失败,出现权限错误

我刚刚使用运行Kubernetes 1.7.5的Google容器引擎创建了一个新的群集,并启用了新的RBAC权限.我遇到了为我的一些服务分配权限的问题,这些问题引导我进行以下操作:

使用RBAC容器引擎的文档声明必须通过运行以下命令授予用户创建授权角色的能力:

kubectl create clusterrolebinding cluster-admin-binding --clusterrole=cluster-admin [--user=<user-name>]
Run Code Online (Sandbox Code Playgroud)

但是,由于缺少权限,这会失败(我假设这些权限与我们尝试通过运行上述命令授予的权限完全相同).

Error from server (Forbidden): 
User "<user-name>" cannot create clusterrolebindings.rbac.authorization.k8s.io at the cluster scope.: 
  "Required \"container.clusterRoleBindings.create\" permission." 
  (post clusterrolebindings.rbac.authorization.k8s.io)
Run Code Online (Sandbox Code Playgroud)

任何帮助将不胜感激,因为这阻止我创建我的集群服务所需的权限.

permissions google-cloud-platform kubernetes google-kubernetes-engine

15
推荐指数
2
解决办法
8331
查看次数