要资料 文章 文库 Lib 视频 Code iProcess 课程 认证 咨询 工具 火云堂 讲座吧   成长之路  
会员   
 
追随技术信仰

随时听讲座
每天看新闻
 
 

Kubernetes教程
Kubernetes概述
Kubernetes设计架构
kubernetes设计理念
创建Kubernetes集群
基于Docker本地运行Kubernetes
使用Vagrant
本地运行Kubrenetes v1.0
Google Computer Engine入门
AWS EC2快速入门
在Azure上使用CoreOS和Weave的 Kubernetes
从零开始k8s
CoreOS部署Kubernetes集群
CloudStack部署Kubernetes集群
vSphere部署Kubernetes集群
Ferdora部署Kubernetes集群
CentOS部署Kubernetes集群
Ubuntu物理节点上部署Kubernets集群
Mesos部署Kubernetes集群
Kubernetes用户指南:应用程序管理
名词解释 Pods
名词解释 Labels
名词解释:Namespace
名词解释 Replication Controller
名词解释:Node
名词解释:ReplicaSets
名词解释 Services
名词解释 Volumes
名词解释:PV/PVC/StorageClass
名称解释:Deployment
名词解释:Secret
名词解释:StatefulSet
名词解释:DaemonSet
名词解释:Service Account
名词解释:CronJob
名词解释:Job
名词解释:Security Context和PSP
名词解释:Resource Quotas
名词解释:Network Policy
名词解释:Ingress
名词解释:ThirdPartyResources
名词解释:ConfigMap
名词解释:PodPreset
配置Kubernetes
管理应用:部署持续运行的应用
Horizontal Pod Autoscaling
管理应用:连接应用
管理应用: 在生产环境中使用Pods和容器
Kubernetes UI
Kube-API Server
授权插件
认证插件
API Server端口配置
Admission Controller
Service Accounts集群管理指南
使用Kubernetes在云上原生部署cassandra
 
 

Google Computer Engine入门
 
75 次浏览
11次  
 捐助

下面的例子用4个节点虚拟机和1个主虚拟机(也就是说集群中使用了5个虚拟机)创建了一个Kubernetes集群。您可以在您的工作站(或是任何您觉得合适的地方)安装和控制这个集群。

开始之前

如果您想要一个简化的入门体验和图形用户界面来管理集群,请考虑尝试使用谷歌容器引擎(GKE)安装和管理托管集群。 如果您想使用自定义的二进制文件或者原生的开源Kubernetes,请看下面的说明。

前提条件

1.您需要一个可以结算费用的Google云平台账户,更多细节详见Google开发者控制台。

2.安装gcloud是必要的。 gcloud可以作为谷歌云SDK的一部分来安装。

3.然后,确保您已经安装了gcloud preview命令行组件。在命令行中运行gcloud preview。如果它要求安装任何组件,就按照提示安装。如果它只是显示帮助文本,那就大功告成了。这是必需的因为集群安装脚本使用gcloud preview命名空间中的GCE实例组,所以这一步是必要的。您还需要在开发控制台中启用计算引擎实例组管理器API。

4.确保gcloud被设定使用您想使用的谷歌云平台项目。您可以使用gcloud配置清单项目检查当前的项目,并通过 gcloud config set project <project-id> 来更改它。

5.确保您拥有基于gcloud身份验证登录的GCloud凭据。

6.确保您可以通过命令行启动一个GCE虚拟机。至少确保您可以实践GCE快速入门的创建实例部分。

7.确保您在没有交互式提示符的情况下可以ssh连接到VM。参阅GCE快速入门登录实例部分。

启动集群

您可以使用下面任意一条命令(以防万一。我们列出了两个,以防您的机器上只安装了某一个)来安装客户端并启动集群:

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

或者

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

此命令完成后,会有一个master虚拟机和四个worker虚拟机作为Kubernetes集群来运行。

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

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

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

cd kubernetescluster/kube-up.sh

如果您想在项目中运行不止一个集群,想使用不同的名字或者不同数量的工作节点,在启动集群之前参见 /cluster/gce/config-default.sh文件来进行更细粒度的配置。

如果您遇到问题,请参见故障排除章节,给Google容器组发邮件或者在IRC freenode的

#google-containers频道提问。

接下来的几个步骤将向您展示:

1.如何在您的工作站上安装命令行客户端来管理集群

2.如何使用集群的一些示例

3.如何删除群集

4.如何启动使用非默认选项的集群(如更大的集群)

在您的工作站中安装Kubernetes命令行工具

集群启动脚本会在工作站中留下一个正在运行的集群和一个kubernetes目录。下一步是要确保kubectl工具是在您的path中。

该kubectl工具控制Kubernetes集群管理器。它可以让您检查集群资源,创建、删除和更新组件以及更多功能。您会用它来查看新集群并生成示例应用程序。 添加适当的二进制文件夹到您的path中以便可以访问kubectl:

# OS X
export PATH=<path/to/kubernetes-directory>/platforms/darwin/amd64:$PATH#
Linux
export PATH=<path/to/kubernetes-directory>/platforms/linux/amd64:$PATH

注:gcloud还附带kubectl,默认情况下被添加到您的path中。然而,gcloud所捆绑的kubectl版本可能会比通过get.k8s.io安装脚本下载的版本旧。我们建议您使用下载的二进制文件,以避免与客户机/服务器版本偏差所带来的潜在问题。

为bash配备Kubernetes命令行工具自动补全

您会发现让kubectl自动补全非常有用:

$ source ./contrib/completions/bash/kubectl

注:这种补全会在您的bash会话一直有效,如果您想要它永久有效,您需要在bash profile中添加这一行。 另外的一个选择,在大多数linux发行版中,您也可以像下面这样复制完整的文件到您的 bash_completions.d :

$ cp ./contrib/completions/bash/kubectl /etc/bash_completion.d/

但是,你在更新kubectl的时候也要更新它。

启动您的集群

监控您的集群

一旦kubectl在您的path中,您就可以用它来查看您的集群。也就是运行:

$ kubectl get --all-namespaces services

应该会显示一组服务,看起来像这样:

同样,您可以查看在集群启动时创建的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启动时可能会花费数秒(在此期间,它们会显示为挂起状态),但是在一小段时间后再次检查,它们就都是运行状态了。

运行一些例子

然后,通过一个简单的nginx示例来拿新的集群练练手。 想要了解更多完整的应用程序,请查看示例目录。该Guestbook示例就是一个很好的“入门”演练。

拆除集群

使用kube-down.sh脚本来移除/删除/拆除集群:

cd kubernetes
cluster/kube-down.sh

同样地,同一目录下的kube-up.sh会做好备份。您无需重新运行curl或wget命令:安装Kubernetes集群所需要的一切都已在您的工作站中就绪。

定制集群

上面的脚本依赖于Google存储来暂存Kubernetes发行版。然后,它会启动(默认)单个master虚拟机以及4个worker虚拟机。您可以通过编辑kubernetes/cluster/gce/configdefault.sh来调整一些参数,您可以在这里查看集群创建成功的记录。

故障排除

项目设置

您需要启用谷歌云存储API和谷歌云存储JSON API,新项目是默认启用的。如果没有启用,可以在谷歌云控制台完成。更多详情请参阅谷歌云存储JSON API

正如前提条件部分所列那样,还要确保地是,您已经启用计算引擎实例组管理器API,并且能够根据GCE快速入门中的指导那样,从命令行中启动一个GCE虚拟机。

集群初始化挂起

如果Kubernetes启动脚本挂起并等待API可用,您可以通过ssh方式连接到主虚拟机和节点虚

拟机来查看日志如:

/var/log/startupscript.log

一旦您解决了这个问题,在再次尝试运行kube-up.sh之前 ,您应该在部分集群创建后运行kube-down.sh来做一下清理。

SSH

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

gcloud compute firewall-rules create default-ssh --network=<network-name> --description "SSH allowed

此外,您的GCE SSH密钥必须要么没有密码,要么需要使用ssh-agent。

网络通信

该实例必须能够使用自己的私有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


您可以捐助,支持我们的公益事业。

1元 10元 50元





认证码: 验证码,看不清楚?请点击刷新验证码 必填



75 次浏览
11次
 捐助
 

每天2个文档/视频
扫描微信二维码订阅
订阅技术月刊
获得每月300个技术资源
 
 

关于我们 | 联系我们 | 京ICP备10020922号 京公海网安备110108001071号