目前创建K8S集群的安装程序最受欢迎的有Kops,Kubespray,kubeadm,rancher,以及个人提供的脚本集等。
附上:
Kubernetes官方文档:https://kubernetes.io/docs/reference/
Kubernetes官方Git地址:https://github.com/kubernetes/kubernetes
Rancher官方地址: https://www.cnrancher.com/
PS:本系列中使用 KubernetesV1.8 RancherV1.6.14
如果大家直接创建一个K8S的环境会发现根本无法初始化,主要原因是K8S相关的Docker包是存放到gcr.io下面,https://cloud.google.com/container-registry , 在国内访问google是一件很痛苦的事情所以第一件事情就要解决墙带来的痛苦,所以我们需要使用国内的K8S源
修改以下可配置项,更换K8S源
私有仓库地址:registry.cn-shenzhen.aliyuncs.com
rancher_cn/pause-amd64:3.0
AAONS组件命名空间:rancher_cn
kubernetes-helm命名空间:rancher_cn
点击设置
配置名称为K8S-CN
在页面最下面点击创建后就能看到有这样一个模板了
这里统一使用的都是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
在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
Welcome to nginx!
如果不需要了可以使用以下命令进行删除
> kubectl delete deployment kube-nginx
deployment "kube-nginx" deleted
> kubectl get pods -o wide
No resources found.