Rancher搭建集群

使用Rancher部署K8S集群

使用Rancher可以自动和可视化的完成Kubernetes集群的安装工作,省去的繁琐的人工安装过程,然您快速投入的业务开发中。

准备

要想使用阿里云ECSRancher直接搭建一套Kubernetes集群,需要准备以下条件:

  • 开通了公网IPECS
  • ECS规格建议至少4C8G
  • ECS使用的阿里云的经典网络
  • ECS设置安全组规则,开放UDP/8472端口(阿里云默认禁止了UDP,我们使用的flannel网络插件的VXLAN模式,需要将ECS的安全组设置UDP/8472端口开放)

步骤

假设现在我们有两个节点masternode,请参考 Rancher Quick Start Guide 安装Rancher

$ docker run -d --restart=unless-stopped -p 80:80 -p 443:443 rancher/rancher

Master

先在Master节点安装Rancher server、control、etcdworker。选择网络组件为Flannel,同时在自定义主机运行命令中选择主机角色、填写主机的内网和外网IP

我们需要将脚本复制到对应的机器上运行,然后Rancher将自动创建Kubernetes集群,并默认在80端口运行Web Server

Node

添加Node节点时只需要在RancherWeb界面上找到您刚安装的集群并选择【编辑集群】并选择节点角色为Worker即可增加一台Kubenretes集群节点。

集群交互

安装完毕后,可以查看到当前节点的状态信息:

如果您习惯使用命令行与集群交互可以Rancherweb上找到集群首页上的 Kubeconfig File 下载按钮,将该文件中的内容保存到您自己电脑的 ~/.kube/config 文件中。然后现在对应Kubernetes版本的 kubectl 命令并放到 PATH 路径下即可。如果您没有在本地安装 kubectl 工具,也可以通过Rancher的集群页面上的 Launch kubectl 命令通过web来操作集群。

Helm

Helm是由Deis发起的一个开源工具,有助于简化部署和管理Kubernetes应用。在本章的实践中,我们也会使用Helm来简化很多应用的安装操作。

Linux中可以使用Snap安装Heml

$ sudo snap install helm --classic

# 通过键入如下命令,在 Kubernetes 群集上安装 Tiller
$ helm init --upgrade

在缺省配置下,Helm会利用 “gcr.io/kubernetes-helm/tiller” 镜像在Kubernetes集群上安装配置Tiller;并且利用 “https://kubernetes-charts.storage.googleapis.com” 作为缺省的stable repository的地址。由于在国内可能无法访问 “gcr.io”, “storage.googleapis.com” 等域名,阿里云容器服务为此提供了镜像站点。请执行如下命令利用阿里云的镜像来配置Helm

$ helm init --upgrade -i registry.cn-hangzhou.aliyuncs.com/google_containers/tiller:v2.5.1 --stable-repo-url https://kubernetes.oss-cn-hangzhou.aliyuncs.com/charts

# 删除默认的源
$ helm repo remove stable

# 设置 Helm 命令自动补全
$ source <(helm completion zsh)
$ source <(helm completion bash)

# 增加新的国内镜像源
$ helm repo add stable https://burdenbear.github.io/kube-charts-mirror/
$ helm repo add stable https://kubernetes.oss-cn-hangzhou.aliyuncs.com/charts

# 查看 Helm 源添加情况
$ helm repo list

Helm的常见命令如下:

# 查看在存储库中可用的所有 Helm Charts
$ helm search

# 更新 Charts 列表以获取最新版本
$ helm repo update

# 部署某个本地 Chart,指定命名空间与额外的配置文件
$ helm install --namespace ufc --name ufc-dev -f ./deployment/ufc/dev-values.yaml ./charts/ufc/

# 查看某个 Chart 的变量
$ helm inspect values stable/mysql

# 查看在群集上安装的 Charts 列表
$ helm list

# 删除某个 Charts 的部署
$ helm del --purge wordpress-test

# 为 Tiller 部署添加授权
$ kubectl create serviceaccount --namespace kube-system tiller
$ kubectl create clusterrolebinding tiller-cluster-rule --clusterrole=cluster-admin --serviceaccount=kube-system:tiller
$ kubectl patch deploy --namespace kube-system tiller-deploy -p '{"spec":{"template":{"spec":{"serviceAccount":"tiller"}}}}'

Links

下一页