Deployment(部署)

  • 部署是指Kubernetes向Node节点发送指令,创建容器的过程
  • Kubernetes支持yml格式的部署脚本
  • kubectl create -f 部署yml文件 #创建部署

yml部署脚本范本

apiVersion: extensions/v1beta1 #kubectl api版本
kind: Deployment # 资源类型
metadata: # 元数据
  name: tomcat-deploy # 该Deployment的名称
spec:
  replicas: 2 # 副本数量
  template: # 部署模板
    metadata:
      labels: # pod的标识
        app: tomcat-cluster # 自定义标识
    spec:
      containers: # 容器组信息
      - name: tomcat-cluster # 容器名称
        image: tomcat # 容器使用的镜像
        ports:
        - containerPort: 8080 # 声明容器对外的端口

与部署相关常用命令

# 创建部署
kubectl create -f 部署yml文件
# 更新部署配置,或第一次创建=create
kubectl apply -f 部署yml文件
# 查看已部署pod
kubectl get pod [-o wide]
# 查看Pod详细信息
kubectl describe pod pod名称
# 查看pod输出日志
kubectl logs [-f] pod名称

部署Tomcat集群

kubectl create -f tomcat-deploy.yml
kubectl get pods
kubectl describe pod tomcat-deploy-5fd4fc7ddb-r2nrj

外部访问Tomcat集群

NodePort方式

在这里插入图片描述
NodePort:使用Service(一个特殊的pod)在每个节点开辟一个端口与容器内部端口进行映射

创建tomcat-service.yml,内容如下

apiVersion: v1
kind: Service
metadata:
  name: tomcat-service
  labels:
    app: tomcat-service # Service也是一个特殊的pod,需要设置lables
spec:
  type: NodePort # Service类型
  selector:
    app: tomcat-cluster # 指定绑定的pod
  ports:
  - port: 8000 # Service在k8s集群内部暴露的端口
    targetPort: 8080 # 被映射的容器暴露端口
    nodePort: 32500 # 集群每个Node节点上对外暴露的端口

创建Service

kubectl create -f tomcat-service.yml

查看Service列表

kubectl get svc
# 或
kubectl get services

查看Service详细信息

kubectl  describe service tomcat-servic

在浏览器中输入http://{{任意Node节点IP}}:32500 即可访问tomcat

版权说明

本文章内容为马士兵教育《架构师高级技能kubernetes入门到精通》课程的学习笔记

Logo

K8S/Kubernetes社区为您提供最前沿的新闻资讯和知识内容

更多推荐