K8S——部署了解运行基础原理(1)

从部署开始了解原理

在这里插入图片描述
这里用部署一个tomcat来了解:


							  部署Tomcat

步骤1:创建Tomcat Docker镜像

  • 创建一个名为 Dockerfile 的文件,并将以下内容复制到其中:
FROM tomcat:latest
COPY ./webapps/ /usr/local/tomcat/webapps/
  • 将你的Tomcat应用程序打包成一个WAR文件,并将其复制到 Dockerfile 所在的目录中。
  • 在终端中,导航到包含 Dockerfile 的目录,并运行以下命令来构建Docker镜像:
docker build -t my-tomcat:latest .

步骤2:创建Deployment

  • 在Kubernetes集群中创建一个Deployment,使用刚才创建的Tomcat Docker镜像。以下是一个示例 YAML 文件:
apiVersion: apps/v1
kind: Deployment
metadata:
  name: my-tomcat-deployment
spec:
  replicas: 3  # 根据需要调整副本数
  selector:
    matchLabels:
      app: my-tomcat
  template:
    metadata:
      labels:
        app: my-tomcat
    spec:
      containers:
      - name: my-tomcat
        image: my-tomcat:latest
        ports:
        - containerPort: 8080
  • 使用以下命令来创建Deployment:
kubectl apply -f my-tomcat-deployment.yaml

步骤3:创建Service

  • 创建一个Service来暴露Tomcat容器的端口,以便从外部进行访问。以下是一个示例 YAML 文件:
apiVersion: v1
kind: Service
metadata:
  name: my-tomcat-service
spec:
  selector:
    app: my-tomcat
  ports:
    - protocol: TCP
      port: 8080  # Tomcat容器的端口号
      targetPort: 8080  # Service将暴露的端口号
  • 使用以下命令来创建Service:
kubectl apply -f my-tomcat-service.yaml

步骤4:访问Tomcat应用程序

  • 等待一段时间,让Deployment和Service正常运行。然后,你可以通过访问Service的IP地址和暴露的端口号来访问Tomcat应用程序。可以使用以下命令获取Service的IP地址:
kubectl get services my-tomcat-service -o jsonpath='{.spec.clusterIP}'
  • 将获取到的IP地址和端口号(默认为8080)组合起来,就可以通过浏览器或命令行访问Tomcat应用程序了。例如,在浏览器中输入 http://<Service IP地址>:8080/,或者在命令行中执行 curl <Service IP地址>:8080/

这样,你就成功地在Kubernetes中部署了一个Tomcat应用程序。


										对ymal文件解释

文件解析my-tomcat-deployment.yaml

kind: Deployment
metadata:
  name: my-tomcat-deployment
spec:
  replicas: 3  # 根据需要调整副本数
  selector:
    matchLabels:
      app: my-tomcat
  template:
    metadata:
      labels:
        app: my-tomcat
    spec:
      containers:
      - name: my-tomcat
        image: my-tomcat:latest
        ports:
        - containerPort: 8080

解释:

这段代码是一个Kubernetes部署配置文件,用于创建一个名为"my-tomcat-deployment"的Deployment。Deployment是Kubernetes中的一种资源对象,用于描述应用程序的副本集。

解析如下:

  1. kind: Deployment:指定这是一个Deployment资源对象。
  2. metadata:包含有关Deployment的元数据信息。
    • name: my-tomcat-deployment:指定Deployment的名称为"my-tomcat-deployment"。
  3. spec:包含Deployment的配置信息。
    • replicas: 3:指定Deployment应该运行的副本数为3。可以根据需要调整这个值。
    • selector:定义如何选择要管理的Pod。
      • matchLabels:指定标签选择器,用于匹配具有特定标签的Pod。
        • app: my-tomcat:指定Pod必须具有"app: my-tomcat"标签才能被选中。
    • template:定义Pod的模板。
      • metadata:包含有关Pod的元数据信息。
        • labels:指定Pod的标签。
          • app: my-tomcat:指定Pod具有"app: my-tomcat"标签。
      • spec:包含Pod的配置信息。
        • containers:定义容器列表。
          • - name: my-tomcat:指定容器的名称为"my-tomcat"。
            • image: my-tomcat:latest:指定容器使用的镜像为"my-tomcat:latest"。
            • ports:定义容器暴露的端口列表。
              • - containerPort: 8080:指定容器将监听的端口号为8080。

     `template`:定义Pod的模板。
      `metadata`:包含有关Pod的元数据信息。
        `labels`:指定Pod的标签。
          `app: my-tomcat`:指定Pod具有"app: my-tomcat"标签。
        #  这一块相当于给新建的pod**命名**
        service文件中有一段;
		spec:
			selector:
				app: my-tomcat
		#这里是使用 my-tomcat的pod

解析my-tomcat-service.yaml

apiVersion: v1
kind: Service
metadata:
  name: my-tomcat-service
spec:
  selector:
    app: my-tomcat
  ports:
    - protocol: TCP
      port: 8080  # Tomcat容器的端口号
      targetPort: 8080  # Service将暴露的端口号

解释:
这段代码是一个Kubernetes的Service资源定义,用于创建一个名为"my-tomcat-service"的服务。该服务将暴露Tomcat容器的8080端口,以便其他应用程序可以通过这个端口访问到Tomcat容器。

具体解释如下:

  • apiVersion: 指定了Kubernetes API的版本号为v1。
  • kind: 指定了要创建的资源类型为Service。
  • metadata: 包含了关于Service的一些元数据信息。
    • name: 指定了Service的名称为"my-tomcat-service"。
  • spec: 定义了Service的具体配置。
    • selector: 选择器用于匹配带有"app: my-tomcat"标签的Pod。这意味着只有带有这个标签的Pod才会被Service所管理。
    • ports: 定义了Service暴露的端口信息。
      • protocol: 指定了端口使用的协议为TCP。
      • port: 指定了Service将暴露的端口号为8080。
      • targetPort: 指定了Tomcat容器需要监听的端口号也为8080。这样,当有请求到达Service时,它将转发到对应的Tomcat容器的8080端口上。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值