kubernetes是docker分布式解决方案,是当前最火的docker解决方案,一般初学者适合玩单机安装。kubernetes安装很简单,只需要通过yum安装etcd,kubernetes即可。默认kubernetes会有etcd,docker,kube-apiserver,kube-controller-manager,kube-scheduler,kubelet,kube-proxy等七个依赖服务。他们构成了kubenertes生态。从服务可以看出来,kubenertes底层操作的还是docker,因为它本省就是为docker分布式服务的。
一、直接安装,默认centos7自带了kubernetes的安装源,无需我们额外添加。
yum install etcd kubernetes -y
二、稍作配置,主要是针对kube-apiserver,配置文件在/etc/kubernetes目录下,修改kube-apiserver,对外暴露本机地址,另外,安全控制KUBE_ADMISSION_CONTROL也需要做修改。
去掉了SecurityContextDeny,ServiceAccount
三、关闭防火墙,便于外部浏览器直接访问我们的http服务。
systemctl stop firewalld
systemctl disable firewalld
四、依次启动服务
systemctl start etcd
systemctl start docker
systemctl start kube-apiserver
systemctl start kube-controller-manager
systemctl start kube-scheduler
systemctl start kubelet
systemctl start kube-proxy
五、该干点什么了,前面我们只是安装了kubenertes,并没有利用它来干活。我们可以通过kubernetes来构建一个tomcat服务,利用mysql做存储,在首页展示一个列表,这也是kubernetes权威指南的示例。 我们需要构建一个mysql服务,另外构建一个tomcat服务,对外提供30001端口访问。这些镜像在docker仓库中都有了,我们需要做的就是通过yml配置文件将这些镜像组织起来,并启动,构建服务。
1、准备mysql-rc.yaml,这个配置文件是将mysql作为一个resource启动起来,类似docker-compose.yml,这里需要指定版本信息,镜像名称,以及端口号,最后还需要针对mysql设置一个环境变量,就是他的默认密码123456,这样mysql才会进行初始化。因为yaml文件直接粘贴格式会乱,这里直接给出截图:
作为服务的配置:
2、无论是作为资源,还是作为服务,创建命令都是一样的,只不过指定的文件不一样,这里分别启动他们:
kubectl create -f mysql-rc.yaml
kubectl create -f mysql-svc.yaml
启动服务:
这个时候是启动了一个docker镜像,运行的是mysql5.7,可以通过docker ps检查一下。
我们可以通过kubectl describe pod mysql-xxx,查看mysql作为pod的详细信息,我们可以先通过kubectl get pods得到所有的pods,然后找到mysql的pod,如下所示:
3、现在有了mysql,我们按照同样的方式构建tomcat,根据kubernetes权威指南的示例,我们稍作修改。因为我们是单机安装,无法通过dns与服务的方式通过mysql服务名直接访问mysql,我们只能通过ip的方式访问mysql,上图中我们通过kubectl describe pod mysql-xxx的命令获得了mysql启动之后docker默认分配的IP:172.17.0.2。现在来准备tomcat的配置文件:
myweb-rc.yaml
myweb-svc.yaml
其中nodePort: 30001表示对外暴露的端口是30001,我们可以通过虚拟机的ip,以及这个30001可以访问我们的服务。
4、与mysql一样的方式启动myweb资源和服务。
一般启动一个资源或者服务可能会不直接显示报错信息,但是当你查看pod详细描述的时候,会发现一直在creating或者pending,表示遇到了错误。
当你看到如下三个状态的时候,表示启动正常了:
5、验证。
前面我们启动了mysql,tomcat,这个应用会创建一个列表,存入mysql数据库中,当我们访问我们的demo的时候,会在页面显示列表的数据。首先访问tomcat首页:
当你直接通过浏览器打开,会访问失败,明明开启了服务,而且防火墙也关闭了,为什么还是不能访问,只能由本机才能访问,这里很奇怪,需要暂时开启防火墙,加入一个容许30001端口的规则,然后关闭防火墙就可以了。
接着访问tomcat首页和项目首页均正常:
1)、tomcat首页 http://192.168.56.66:30001/
2)、项目首页http://192.168.56.66:30001/demo/
至此,感受了一把kubernetes单机安装与实战,感觉多了一些管理和api,底层其实还是docker,因为它只是docker分布式的一个解决方案,并没有替换docker。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)