k8s部署tomcat及web应用_k8s介绍 k8s搭建一个应用(mysql+tomcat)

k8s介绍

k8s搭建一个应用(mysql+tomcat)

kubetnetes介绍

官网 https://kubernetes.io/

Kubernetes也就是k8s

Kubernetes是一个开源系统,它主要用来自动部署、扩容缩容和管理容器应用。

它将诸多应用的容器分为若干个逻辑单元以便于管理和发现。Kubernetes拥有着在kubernetes中,service是核心,我们并不需要太多关注kubernetes里面是怎么工作的,我们只需要关心它给我们提供什么service。

就像docker容器可以提供一个mysqld的服务、web服务等。

它需要拥有一个唯一的名字、有ip:port对外提供服务。

提供service的是容器,为了保证service的高可用,提供service的容器不能只有一个,需要一组。这一组容器我们把它叫做pod。

为了实现service和pod之间的关联,又有了标签(label)的概念,我们把功能相同的pod设定为同一个标签,比如,可以把所有提供mysql服务的pod贴上标签name=mysql,这样mysql service要作用于所有包含name=mysql标签的pod上。

pod运行在Node上,Node可以是一台物理机,也可以是虚拟机,通常一个Node上会运行几百个pod。每个pod里运行着一个特殊的容器,叫做Pause,其他容器叫做业务容器,业务容器共享Pause容器的网络栈和Volume挂载卷,因此同一个pod内的业务容器之间的通信和数据交换更为高效。

在集群管理方面,kubernetes将集群中的机器划分为一个master节点和一群工作节点Node,其中master上运行着kubeapiserver、kube-controller-manager、kube-scheduler,它们实现了资源管理、pod调度、弹性伸缩、安全控制、系统监

控、纠错等功能。Node是工作节点,运行应用程序,提供服务。Node上的最小单元是pod,Node上运行着kubernetesd的kubelet、kube-proxy服务进程,它们负责pod的创建、启动、监控、重启、销毁,以及实现负载均衡。

通过一组图了解kubernetes各个元素的关系:

Google高负载生产环境的15年经验,并结合了社区的优秀思想和实践。

扩容和升级需要一个关键的东西,Replication controller(RC),RC需要包含3个关键信息:

1)目标pod的定义

2)目标pod需要运行的副本数量(replicas)

3)要监控的目标pod的标签(Label)

工作过程:RC里定义好3个指标,kubernetes会根据RC定义的Label帅选出对应的pod,并实时监控其状态和数量,当实例数量少于定义的副本数(replicas),则会根据RC定义的pod模版来创建新的pod,然后将此pod调度到合适的Node上启动并运行。

可理解为pod的高可用,是rc来定义的(调度的)。可调度到其他正常的node上

该过程完全自动化,无需人工干涉。

从一个例子开始:

webapp(tomcat) + mysql

安装kubernetes #此处只是单机安装kubernetes,并不是安装集群

准备一台centos7.5以上的版本

#cat /etc/redhat-release 来看一下版本。如果不是 yum update升级一下

1) 关闭firewalld 和 selinux

systemctl stop firewalld

systemctl disable firewalld

setenforce 0

2)安装etc

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
好的,我可以为您提供一些基本的步骤来部署 TomcatMySQL 服务在 Kubernetes 上。 1.首先,您需要安装和配置 kubectl 和 Kubernetes 集群。您可以使用 Minikube 或 kubeadm 来设置一个本地的 Kubernetes 集群。 2.接下来,您需要编写 TomcatMySQL 的 Kubernetes 部署文件,这些文件将告诉 Kubernetes 如何部署这些服务。 这是一个 Tomcat 部署文件的例子: ```yaml apiVersion: apps/v1 kind: Deployment metadata: name: tomcat-deployment spec: selector: matchLabels: app: tomcat replicas: 1 template: metadata: labels: app: tomcat spec: containers: - name: tomcat image: tomcat:9.0 ports: - containerPort: 8080 ``` 这是一个 MySQL 部署文件的例子: ```yaml apiVersion: apps/v1 kind: Deployment metadata: name: mysql-deployment spec: selector: matchLabels: app: mysql replicas: 1 template: metadata: labels: app: mysql spec: containers: - name: mysql image: mysql:latest env: - name: MYSQL_ROOT_PASSWORD value: your_password_here ports: - containerPort: 3306 ``` 3.将这些部署文件应用到 Kubernetes 集群中: ``` kubectl apply -f tomcat-deployment.yaml kubectl apply -f mysql-deployment.yaml ``` 4.创建 TomcatMySQL 的 Kubernetes 服务: ```yaml apiVersion: v1 kind: Service metadata: name: tomcat-service spec: selector: app: tomcat ports: - name: http port: 8080 targetPort: 8080 type: LoadBalancer ``` ```yaml apiVersion: v1 kind: Service metadata: name: mysql-service spec: selector: app: mysql ports: - name: mysql port: 3306 targetPort: 3306 type: ClusterIP ``` 5.将这些服务应用到 Kubernetes 集群中: ``` kubectl apply -f tomcat-service.yaml kubectl apply -f mysql-service.yaml ``` 现在,您的 TomcatMySQL 服务已经部署在 Kubernetes 集群中,并且已经可以通过 tomcat-service 和 mysql-service 访问。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值