本文是通过yum方式安装Kubernetes,并部署tomcat+mysql实现Jave Web应用。此应用是JSP页面通过JDBC访问 Mysql 数据库,只要程序正确连接到 数据库 上,就会自动完成对应的Table的创建与初始化数据的准备工作。当我们通过浏览器访问此应用时,就会显示一个表格的页面,数据则来自数据库。
此应用需要启动两个容器:Web App容器和MySQL容器,并且Web App容器需要访问MySQL容器。现在我们就来看看通过Kubernetes是如何实现Java Web应用的。
在继续阅读之前,我们需要对Kubernetes有一个基本的认识,需要了解它的原理、核心架构、核心组件和对象、以及各组件之间的联系等基础概念,可以参考我的上一篇博文《初识Kubernetes(K8s):理论基础》, http://blog.51cto.com/andyxu/2308937
系统环境
操作系统:Centos 7.5 64位
IP地址:192.168.2.238
一、安装部署Kubernetes(K8s)
1、关闭Centos自带的防火墙服务
注:Kubernetes集群之间会有大量的网络通信,在一个安全的内部网络环境中建议关闭防火墙服务
[root@andyxu-test ~]# systemctl disable firewalld
[root@andyxu-test ~]# systemctl stop firewalld
2、安装etcd和Kubernetes软件(会自动安装Docker软件)
[root@andyxu-test ~]# yum -y install etcd kubernetes
注:yum方式安装的kubernetes的版本是1.5.2
3、生成rhsm证书文件
[root@andyxu-test ~]# wget http://mirror.centos.org/centos/7/os/x86_64/Packages/python-rhsm-certificates-1.19.10-1.el7_4.x86_64.rpm
[root@andyxu-test ~]# rpm2cpio python-rhsm-certificates-1.19.10-1.el7_4.x86_64.rpm | cpio -iv --to-stdout ./etc/rhsm/ca/redhat-uep.pem | tee /etc/rhsm/ca/redhat-uep.pem
注:创建容器时需要从redhat站点下载pod-infrastructure:latest镜像,如果没有此证书文件会报错,Pod会一直显示ContainerCreating状态。
4、修改docker和kube-apiserver的配置文件
docker配置文件为/etc/sysconfig/docker,将OPTIONS的内容修改为
OPTIONS='--selinux-enabled=false --insecure-registry gcr.io'
kube-apiserver配置文件为/etc/kubernetes/apiserver,修改KUBE_ADMISSION_CONTROL的内容,将--admission-control参数中的ServiceAccount删除。
KUBE_ADMISSION_CONTROL="--admission-control=NamespaceLifecycle,NamespaceExists,LimitRanger,SecurityContextDeny,ResourceQuota"
5、按顺序启动所有服务
[root@andyxu-test ~]# systemctl start etcd
[root@andyxu-test ~]# systemctl start docker