我有一个kubernetes集群,我想与jenkins合作。 我已经configurationjenkins插件成功validationkubernetes集群,但由于某种原因,当我尝试运行构build它说所有节点都离线。 我的configuration: 任何build议,欢迎。
我在Google云端Kubernetes群集中展示除端口80以外的端口时遇到问题。 下面是Kubernetes服务yaml文件,但由于某种原因,只有端口80被暴露。 我已经SSH进入豆荚,并可以确认,他们在内部服务的其他端口下面列出,但他们似乎并没有被暴露。 任何洞察问题或我应该检查debugging吗? apiVersion: v1 kind: Service metadata: name: my-frontend namespace: ocr-cluster labels: component: ocr spec: type: LoadBalancer selector: component: ocr ports: # Working: – name: http port: 80 protocol: TCP # Not working – name: rabbit port: 15672 protocol: TCP – name: flower port: 5555 protocol: TCP
[ansible@kctl-master kubectl]$ sudo kubectl get services NAME CLUSTER-IP EXTERNAL-IP PORT(S) AGE kubernetes 10.254.0.1 <none> 443/TCP 43s nginx-ingress 10.254.39.207 <pending> 80:32102/TCP 1m [ansible@kctl-master kubectl]$ 跑完后, 试图让虚拟ip不被这个或任何节点用于HA。 但是“external-ip”卡在“挂起” [ansible@kctl-master kubectl]$ cat 0-ingress.yaml apiVersion: v1 kind: Service metadata: name: nginx-ingress spec: type: LoadBalancer ports: – port: 80 name: http nodePort: 32102 selector: k8s-app: nginx-ingress-lb [ansible@kctl-master kubectl]$
我已经读了这个 ,我明白(我认为)Kubernetes livenessProbes和GKE LoadBalancer健康检查之间的区别。 我的问题是:我通过NodePort公开了大部分的Kube服务,NodePort默认在GKE中创build了一个新的后端服务,并且还创build了一个与GKE中的后端HTTP服务相对应的负载平衡器运行状况检查。 所有这些自动创build的运行状况检查假设我有一个HTTP状态端点打开/,当我不这样做。 我有一个HTTP健康检查托pipe在不同的端点上。 我如何 A)以某种方式暗示GKE根据Kubernetes资源中定义的规则创build负载平衡器规则,而不是盲目地创build一堆听错误的路由,或者 B)让GKE不要为每个NodePort服务自动创build一个无效的运行状况检查。 或者,这只是一个不灵活的Google Cloud怪癖,我将不得不作出更改代码的变通?
我在kubernetes中运行这个redis集群实现: https://github.com/sobotklp/kubernetes-redis-cluster 一段时间后,主人开始消耗越来越多的内存。 它会消耗大约7GB的内存,然后崩溃(我的kubernetes节点被填满了)。 如果我运行INFO,它永远不会超过550 MB。 的内存使用。 我不知道这个记忆在哪里,或者我该如何解决这个问题。 这是一个相当“密集”的设置,我在任何时候都在写文件,而且我存储了超过3500个密钥,但是我看不出如何得到这么大的内存。 除了有时第五个节点(它的一个6 pod集群)达到2Gi以上,所有其他节点都按预期运行。 在下面,我将terminal日志从INFO *中附加出来。 在此先感谢您的帮助。 # Server redis_version:3.2.1 redis_git_sha1:00000000 redis_git_dirty:0 redis_build_id:ed627d97d5dc311e redis_mode:cluster os:Linux 4.4.52+ x86_64 arch_bits:64 multiplexing_api:epoll gcc_version:4.9.2 process_id:11 run_id:54afedf002881bd3c6423024c8813d2b40b79222 tcp_port:6379 uptime_in_seconds:2255 uptime_in_days:0 hz:10 lru_clock:10456862 executable:/data/redis-server config_file:/conf/redis.conf # Clients connected_clients:15 client_longest_output_list:0 client_biggest_input_buf:0 blocked_clients:0 # Memory used_memory:364433096 used_memory_human:347.55M used_memory_rss:372293632 used_memory_rss_human:355.05M used_memory_peak:653513856 used_memory_peak_human:623.24M total_system_memory:15775928320 total_system_memory_human:14.69G used_memory_lua:37888 used_memory_lua_human:37.00K maxmemory:0 […]
我遵循GKE ruby书架示例并引用了kubernetes示例。 在部署了资源的同时,我无法ping通我的rails frontend节点。 我实现了一个简单的ping路由来testing最基本的连接。 我已经减less了replicas到1来简化事情,并从节点抓取日志,以确认它已经启动并且没有任何错误出现。 > wget http://104.154.128.169/ping –2017-09-15 14:14:54– http://104.154.128.169/ping Connecting to 104.154.128.169:80… failed: Connection refused. configuration apiVersion: v1 kind: Service metadata: name: foo-frontend labels: app: foo tier: frontend spec: type: LoadBalancer ports: – port: 80 selector: app: foo tier: frontend — apiVersion: extensions/v1beta1 kind: Deployment metadata: name: foo-frontend labels: app: foo tier: […]
我在docker-compose中进行了本地开发,并且有一个nginx容器做一个简单的proxy_pass如下所示: location /app/ { proxy_pass http://webapp:3000/; proxy_http_version 1.1; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection 'upgrade'; proxy_set_header Host $host; proxy_cache_bypass $http_upgrade; resolver 127.0.0.11; } 我现在想转移到GKE的kubernetes ,最后一行给我麻烦。 我试图将parsing器切换到: resolver kube-dns; 我也尝试了各种其他的IP和名字,但是我一直听错: nginx: [emerg] host not found in resolver "kube-dns" 我的kubernetes设置是我有一个容器,有2个容器:'webapp'和'nginx'。 我只是想有一个外部service指向nginx,可以proxy_pass到webapp。 有任何想法吗?
我有在Kubernetes中定义的服务,我想从与我的k8s群集相同的networking上的Google Compute VM访问。 我从这个链接可以看出,可以问k8s API服务器如何访问一个服务; 麻烦的是我无法连接到API服务器: vm2:~$ kubectl proxy & [2] 1230 vm2:~$ curl http://localhost:8001/api/v1/namespaces/default/services/proxy/proxy I1102 09:53:25.861513 1104 logs.go:41] http: proxy error: dial tcp [::1]:8080: getsockopt: connection refused 我看到它似乎有错误的API服务器地址: vm2:~$ kubectl cluster-info Kubernetes master is running at http://localhost:8080 To further debug and diagnose cluster problems, use 'kubectl cluster-info dump'. 我的API服务器地址实际上是109.xxx 。 手动指定API服务器让我得到正确的服务器,但它声称没有资源: vm2:~$ kubectl -s […]
作为评估的一部分,我一直试图设置kubernetes一个星期,但我只能find 非常复杂的手动解决scheme已经过时或被彻底打破 疯狂简单的解决scheme,打破了令人麻木的最佳实践 “在一个盒子里认识kubernetes集群” 我的基本要求是: 我有AWS 我有VPC,Subnets + peering已经创build 我需要能够在适当的VPC中为每个环境构build一个集群 Ubuntu 16.04 我应该控制SG和实例(terraform + ansible) 绝对没有单点失败。 我不希望通过在主人之上添加工具或控制器来创build不必要的图层。 (为什么?!!) 没有公然的安全漏洞 我已经尝试了一些解决scheme,但是他们失败了,并且要求#7 kubeadm(rest#6,#7) 我试了一下,因为它应该是使用现有基础架构的合理解决scheme。 我能够获得1个主节点和2个节点的集群操作,但它似乎没有完全工作(kubernetes仪表板无法访问) 最后,即使工具本身也不推荐生产,因为文档状态主节点不能成为HA。 juju /与“规范kubernetes”(中断#2,#3,#5,#6,#7,#8) 不允许VPC的规格。 没关系pipe理SG,实例,通过堡垒主机工作。 它实际上在ec2-classic中创build实例…? 在AWS中的实例命名是可怕的(不能告诉什么是主 – VS VSD VS ??) 3个工人群体的15个安全组,其中9个是完全空的? 变形失败,'NoneType'对象没有属性'controller' 它在“控制器机器”中创build了一个单点故障 INGRESS TCP 22 0.0.0.0/0 < – 我要哭了(这就是为什么ec2-classic几年前就离开了)
我们正在使用Kubernetes v1.1.0-beta,我很好奇Kubernetes是否支持像Docker Compose这样的env_file ? 在Pod / ReplicationController创build时,它将读取由env_file指定的文件并在该窗格上设置variables。 这是一件事情还是只是环境地图?