Kubernetes(三) - 使用Rancher部署K8S集群(搭建Kubernetes)

目前创建K8S集群的安装程序最受欢迎的有Kops,Kubespray,kubeadm,rancher,以及个人提供的脚本集等。

  • Kops和Kubespary在国外用的比较多,没有处理中国的网络问题,没法使用。
  • kubeadm是Kubernetes官方提供的k8s部署工具,不过不支持HA,且支持的docker版本、K8S版本也有限,因此无法作为生产级安装程序。
  • Rancher2016年的新起之秀,可以做到极简快速部署管理Docker,并支持多种编排方式:Cattle、Kubernetes、Mesos、Swarm等。通过修改镜像库的方式可以实现在国内的使用。所以我们选择Rancher作为Docker管理部署框架。(因为对于Kubernetes也是容器化的方式运行所以容灾恢复比在物理机优秀)

附上:

Kubernetes官方文档:https://kubernetes.io/docs/reference/

Kubernetes官方Git地址:https://github.com/kubernetes/kubernetes

Rancher官方地址: https://www.cnrancher.com/

PS:本系列中使用 KubernetesV1.8 RancherV1.6.14

1. 配置K8S环境模板

如果大家直接创建一个K8S的环境会发现根本无法初始化,主要原因是K8S相关的Docker包是存放到gcr.io下面,https://cloud.google.com/container-registry , 在国内访问google是一件很痛苦的事情所以第一件事情就要解决墙带来的痛苦,所以我们需要使用国内的K8S源

先进入到环境管理:

添加一个新的环境模板

选择K8S,然后点击编辑环境

修改以下可配置项,更换K8S源

私有仓库地址:registry.cn-shenzhen.aliyuncs.com

rancher_cn/pause-amd64:3.0

AAONS组件命名空间:rancher_cn

kubernetes-helm命名空间:rancher_cn

点击设置

配置名称为K8S-CN

在页面最下面点击创建后就能看到有这样一个模板了

2.创建一个K8S集群

这里统一使用的都是Centos7.4系统,Docker-17.03.02-ce版本

同样在环境配置中选择添加环境

填写好名称K8S-DEMO选择我们之前创建好的国内K8S模板

创建好之后在左上角选择我们创建的环境

可以看到初始化进度,等待添加主机

选择技术架构->主机

添加主机

设置主机连接到Rancher的地址(在内网情况下使用内网IP)

复制部署脚本(也可以直接接入云厂商服务)

PS:第四步<主机同时也是运行rancher/server容器的主机时,则必须设置此IP。> 我们在配置master是在rancher上配置的所以设置好主机的IP,推荐node节点也配置上对应的IP
在服务器上运行脚本增加主机

我们可以看到主机已经是活跃状态了,并且K8S相关组件都已经配置启动起来了

我们在接着加两台node节点

现在就有三台正常的主机了,通过上面菜单的KUBERNETES中的仪表盘可以进入到kubernetes-dashboard

3. 尝试使用K8S



选择cli可以使用在线ssh工具操作kubectl

在K8S中运行一个nginx容器

> kubectl run kube-nginx --image=nginx:latest --port=80 --image-pull-policy=IfNotPresent

查看创建的pods查看容器对应的IP

> kubectl get pods -o wide
NAME                          READY     STATUS    RESTARTS   AGE       IP             NODE
kube-nginx-56495867b4-gvfrs   1/1       Running   0          58s       10.42.194.56   k8s-2

通过K8S分配的内部IP,就可以在web-shell中访问对应的nginx

> curl 10.42.194.56
<!DOCTYPE html>
<html>
<head>
<title>Welcome to nginx!</title>

如果不需要了可以使用以下命令进行删除

> kubectl delete deployment kube-nginx
deployment "kube-nginx" deleted
> kubectl get pods -o wide
No resources found.
文振熙 CSDN认证博客专家 Go/GoLang PHP 分布式
六年技术研发经验、四年后端技术架构经验,带领管理过45+技术团队和技术架构团队,从零到一帮助公司组建了后端团队、 运维团队和大数据团队,并且不断演进推广前沿技术;

多年来一直坚持产出优质原创博文,共创作169篇原创博客,全网阅读量破百万,并且被CSDN开源社区授予CSDN认证专家,

参加或主导多个开源项目研发(PhalApi、GoCore、GoRSA、KT-connect);
©️2020 CSDN 皮肤主题: 技术黑板 设计师: CSDN官方博客 返回首页
实付0元
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、C币套餐、付费专栏及课程。

余额充值