在Google Compute Engine上运行Kubernetes

下面的例子用了4个node 节点的虚拟机和1个master 节点的虚拟机来(即集群中共有5个虚拟机)创建了一个Kubernetes集群。

说明

如果您想要简化入门体验和使用GUI来管理群集,可以考虑使用Google Container Engine (GKE)进行安装和管理和托管群集。如果要使用自定义二进制文件或纯原生的Kubernetes,请继续执行以下说明。

准备条件

  1. 需要Google Cloud Platform帐户,有关详细信息,请访问Google Developers Console
  2. 安装gcloud,gcloud可以作为Google Cloud SDK的一部分进行安装。
  3. 在 Google Cloud developers console中启用 Compute Engine Instance Group Manager API
  4. 确保在gcloud正确设置,可以使用gcloud config list project方法进行检查,通过gcloud config set project <project-id>方法来更改。
  5. 通过gcloud auth login,确保拥有Gcloud。
  6. (可选)为了对GCE进行API调用,还必须运行gcloud auth application-default login。
  7. 确保你可以用命令行启动GCE VM。
  8. 确保你可以使用ssh方式进入虚拟机。

启动群集

使用以下任一命令来安装客户端并启动集群:

curl -sS https://get.k8s.io | bash

wget -q -O - https://get.k8s.io | bash

安装完成后,将拥有一个Master节点主VM和4个Node节点的工作VM,作为Kubernetes集群来运行。

默认情况下,一些容器已经运行在集群上。如容器kibana和elasticsearch提供日志记录,而heapster提供监控服务。

上面提到的命令运行脚本创建的“kubernetes”集群。它定义了一个特定的集群配置,所以只能运行一次。

或者,可以从此页面下载并安装最新的Kubernetes版本,然后运行<kubernetes>/cluster/kube-up.sh脚本启动群集:

cd kubernetes
cluster/kube-up.sh

如果要在项目中运行多个集群,要使用不同的Name,或者想要不同数量的工作节点,请在启动集群之前参见 /cluster/gce/config-default.sh文件进行更详细配置。

如果遇到问题,请参考有关 troubleshooting的部分,发布到  kubernetes-users group,或者在 Slack上询问问题。

接下来的几个步骤将告诉你:

  1. 如何在工作站上安装命令管理工具来管理集群
  2. 如何使用集群的一些示例
  3. 如何删除集群
  4. 如何启动具有非默认选项的群集(更大的集群)

工作站上安装Kubernetes命令管理工具

集群启动脚本将为你提供一个运行中的集群和kubernetes 目录。

使用kubectl工具来控制Kubernetes集群管理器。它可以检查集群资源,创建,删除和更新组件等等。你将会用它来查看新集群并生成示例应用程序。

使用gcloud在你的工作站上安装kubectl命令管理工具:

 gcloud components install kubectl

注意:gcloud所捆绑的kubectl版本可能会比通过get.k8s.io安装脚本下载的版本旧。请参考kubectl安装 文档,了解如果在工作站上安装最新的kubectl。

开始使用集群

检查群集

在kubectl中使用以下命令来查看你的群集。

$ kubectl get --all-namespaces services

显示的services

NAMESPACE     NAME                  CLUSTER_IP       EXTERNAL_IP       PORT(S)        AGE
default       kubernetes            10.0.0.1         <none>            443/TCP        1d
kube-system   kube-dns              10.0.0.2         <none>            53/TCP,53/UDP  1d
kube-system   kube-ui               10.0.0.3         <none>            80/TCP         1d
...

通过以下命令查看在集群启动时创建的一组pod

$ kubectl get --all-namespaces pods

查看pod列表:

NAMESPACE     NAME                                           READY     STATUS    RESTARTS   AGE
kube-system   fluentd-cloud-logging-kubernetes-minion-63uo   1/1       Running   0          14m
kube-system   fluentd-cloud-logging-kubernetes-minion-c1n9   1/1       Running   0          14m
kube-system   fluentd-cloud-logging-kubernetes-minion-c4og   1/1       Running   0          14m
kube-system   fluentd-cloud-logging-kubernetes-minion-ngua   1/1       Running   0          14m
kube-system   kube-dns-v5-7ztia                              3/3       Running   0          15m
kube-system   kube-ui-v1-curt1                               1/1       Running   0          15m
kube-system   monitoring-heapster-v5-ex4u3                   1/1       Running   1          15m
kube-system   monitoring-influx-grafana-v1-piled             2/2       Running   0          15m

有些pod可能需要一定时间才能启动(在此期间他们会显示Pending)。

运行例子

然后,通过一个简单的nginx示例来尝试你的新集群。

有关更完整的应用示例,请查看 examples directory。该guestbook example是一个很好的“入门”例子。

卸载集群

使用kube-down.sh脚本来remove/delete/teardown集群。

cd kubernetes
cluster/kube-down.sh

同样的,kube-up.sh在同一个目录下将会备份。您不需要重新运行curl或wget命令:设置Kubernetes集群所需的一切现在都在您的工作站上。

定制

上述脚本依赖于Google Storage来推出Kubernetes版本。然后启动(默认情况下)单个主虚拟机以及4个工作虚拟机,你可以通过编辑kubernetes/cluster/gce/config-default.sh调整其中一些参数,可以在此处查看成功创建集群的脚本 。

故障排除

项目设置

需要启用Google Cloud Storage API,并启用Google Cloud Storage JSON API。新项目默认是激活的。如果未启动,可以在Google Cloud Console中完成。有关详细信息,请参阅Google Cloud Storage JSON API Overview

还要确保已启用Compute Engine Instance Group Manager API,并从命令行启动GCE VM,如GCE Quickstart说明那样。

群集初始化挂起

如果Kubernetes启动脚本挂起等待API可用,则可以通过SSH对Master和Node上的VM进行故障诊断,查看诸如/var/log/startupscript.log这样的日志。

一旦你解决了这些问题,当再次运行kube-up.sh前 ,应该在集群创建后运行kube-down.sh来做一下清理。

SSH

如果无法通过SSH连接到实例,请确保GCE防火墙没有屏蔽VM的22端口。默认情况是可以正常连接实例,但是如果编辑了防火墙规则或创建了一个新的非默认网络,则需要暴露它:

gcloud compute firewall-rules create default-ssh --network=<network-name> --description "SSH allowed from anywhere" --allow tcp:22

此外,你的GCE SSH key 必须没有密码,或者需要使用ssh-agent。

Networking

这些实例必须能用私有IP进行通信。该脚本使用“默认”网络,该网络应该有一个名为“default-allow-internal”的防火墙规则,允许私有IP上的任何端口上的流量。如果默认网络中缺少此规则,或者如果更改cluster/config-default.sh正在使用的网络,则需要创建下字段值的新规则:

  • Source Ranges: 10.0.0.0/8
  • Allowed Protocols and Port: tcp:1-65535;udp:1-65535;icmp

Support Level

aaS Provider Config. Mgmt OS Networking Docs Conforms Support Level
GCE Saltstack Debian GCE docs Project

有关所有解决方案的support level信息,请参考Table of solutions

继续学习

有关管理和使用Kubernetes集群的更多详细信息,请参阅Kubernetes文档

K8S中文社区微信公众号

译者

Vincent

业精于勤 荒于嬉;行成于思 毁于随;

《在Google Compute Engine上运行Kubernetes》有234个想法

  1. Pingback: 2019
  2. Pingback: emkartofun
  3. Pingback: we-b-tv.com
  4. Pingback: buy viagra
  5. Pingback: legit online pharmacy
  6. Pingback: viagra
  7. Pingback: cialis online safe
  8. Pingback: buy cialis paypal
  9. Pingback: search dissertations
  10. Pingback: doctoral thesis
  11. Pingback: Zakhar Berkut hd
  12. Pingback: how to get cialis
  13. Pingback: free dating kent
  14. Pingback: regcialist.com
  15. Pingback: snorting viagra
  16. Pingback: atorvastatin recall
  17. Pingback: prozac drowsiness
  18. Pingback: and vortioxetine
  19. Pingback: 800 mg aurogra gold
  20. Pingback: viagra pills
  21. Pingback: viagra
  22. Pingback: female viagra pills
  23. Pingback: viagra prescription
  24. Pingback: cialis online
  25. Pingback: cialis pills online
  26. Pingback: cialis uk
  27. Pingback: cialis 2.5 mg
  28. Pingback: viagra samples
  29. Pingback: online viagra
  30. Pingback: buy viagra online
  31. Pingback: gay male s
  32. Pingback: 1
  33. Pingback: cialis soft tabs
  34. Pingback: viagra professional
  35. Pingback: how to use viagra
  36. Pingback: can women take cialis
  37. Pingback: sildenafil citrate
  38. Pingback: cialis pharmacy
  39. Pingback: otc viagra
  40. Pingback: where do i get cialis
  41. Pingback: how to get ivermectin
  42. Pingback: ivermectin fleet farm
  43. Pingback: generic for cialis
  44. Pingback: viagra kaufen
  45. Pingback: sildenafil online
  46. Pingback: viagra history
  47. Pingback: viagra cvs
  48. Pingback: viagra ohne rezept
  49. Pingback: viagra gum
  50. Pingback: sildenafilo
  51. Pingback: chewable viagra
  52. Pingback: cheap online viagra
  53. Pingback: cialis prices walmart
  54. Pingback: viagra men
  55. Pingback: generic cialis sale
  56. Pingback: alternative to viagra
  57. Pingback: otc viagra walmart
  58. Pingback: snorting viagra
  59. Pingback: generic for viagra
  60. Pingback: best sex video games
  61. Pingback: pfizer viagra price
  62. Pingback: sildenafil prices
  63. Pingback: meritking
  64. Pingback: elexusbet
  65. Pingback: eurocasino
  66. Pingback: madridbet
  67. Pingback: meritroyalbet
  68. Pingback: eurocasino
  69. Pingback: eurocasino
  70. Pingback: cialis 100mg dosage
  71. Pingback: zithromax 500mg cost
  72. Pingback: meritroyalbet
  73. Pingback: viagra otc
  74. Pingback: teva sildenafil
  75. Pingback: cialis 500
  76. Pingback: meritking
  77. Pingback: meritroyalbet
  78. Pingback: pfizer viagra coupon
  79. Pingback: europe cialis
  80. Pingback: meloxicam glaucoma
  81. Pingback: ivermectin uses
  82. Pingback: ivermectin generic
  83. Pingback: zithromax package
  84. Pingback: flagyl alcoholism
  85. Pingback: andere.strikingly.com
  86. Pingback: ivermectin cream 5%
  87. Pingback: injection augmentin
  88. Pingback: cephalexin formula
  89. Pingback: cephalexin sneeze
  90. Pingback: cleocin
  91. Pingback: stromectol preis
  92. Pingback: lasix medicine cost
  93. Pingback: lasix 500 mg
  94. Pingback: ivermectin online
  95. Pingback: ivermectin topical
  96. Pingback: fda ivermectin
  97. Pingback: buy ivermectin online
  98. Pingback: ivermectin 250ml
  99. Pingback: child porn
  100. Pingback: play luckyland
  101. Pingback: ivermectine usa
  102. Pingback: stromectol buy
  103. Pingback: ivermectin 24 mg
  104. Pingback: ivermectin 2ml
  105. Pingback: mazhor4sezon
  106. Pingback: ivermectin syrup
  107. Pingback: ivermectin cost
  108. Pingback: psy-
  109. Pingback: Gz92uNNH
  110. Pingback: do-posle-psihologa
  111. Pingback: ivermectin buy nz
  112. Pingback: bahis siteleri
  113. Pingback: JXNhGmmt
  114. Pingback: 3heralds
  115. Pingback: stromectol buy
  116. Pingback: psikholog
  117. Pingback: viagra
  118. Pingback: revatio
  119. Pingback: site
  120. Pingback: A片
  121. Pingback: 2022-film
  122. Pingback: Autoapprove List
  123. Pingback: meritking
  124. Pingback: child porn
  125. Pingback: canlı sex hattı
  126. Pingback: meritking
  127. Pingback: meritking
  128. Pingback: meritking
  129. Pingback: grandpashabet
  130. Pingback: meritking
  131. Pingback: meritking giriş
  132. Pingback: grandpashabet
  133. Pingback: izmir escort
  134. Pingback: tekirdağ
  135. Pingback: child porn
  136. Pingback: porn
  137. Pingback: child porn
  138. Pingback: xxlargeseodigi
  139. Pingback: fuck google
  140. Pingback: porn
  141. Pingback: bağcılar escort
  142. Pingback: child porn
  143. Pingback: sex
  144. Pingback: sex
  145. Pingback: batmanapollo.ru
  146. Pingback: çeşme transfer
  147. Pingback: izmir travesti bayan
  148. Pingback: child porn
  149. Pingback: 911
  150. Pingback: yasam ayavefe
  151. Pingback: grandpashabet
  152. Pingback: grandpashabet
  153. Pingback: grandpashabet
  154. Pingback: child porn
  155. Pingback: grandpashabet

发表评论

电子邮件地址不会被公开。

Time limit exceeded. Please complete the captcha once again.