栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 系统运维 > 运维 > Linux

Kubernetes中部署应用程序流程

Linux 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Kubernetes中部署应用程序流程

  • 在Kubernetes中部署应用程序流程
    • 制作镜像(镜像按照作用分:1基础镜像,2运行环境镜像,3项目镜像)

      • dockerfile

    • 使用控制器部署镜像

      • Deployment

      • StatefulSet

      • DaemonSet

    • 对外暴漏应用

      • Service

      • Ingress

    • 日志监控

    • 日常运维

1. 制作镜像
Dockerfile
2. 使用Deployment控制器部署镜像
kubectl create deployment web --image=nginx
kubectl get deployment,pods
3.使用Service发布Pod
kubectl expose deployment web --port=80 --type=NodePort --target=80 -name=web
kubectl get service
  • Pod 与Deployment的关系

    • Deployment 时最常用的controllers,其他控制器还有DaemonSet,StatefulSet等

    • Controllers作用

      • 管理Pod对象

  • 使用标签与Pod关联

  • 控制器实现了了Pod的滚动更新,伸缩、副本管理、维护Pod状态等

  • Deployment的功能

    • 管理Pod和ReplicaSet

    • 具有上线部署、副本设定、滚动升级、回滚等功能

    • 提供声明式更新、例如只更新一个新的image

  • 应用场景:网站、API、微服务

  • 创建 Deployment(创建了一个 ReplicaSet,负责启动三个 nginx Pods)

    apiVersion: apps/v1
    kind: Deployment
    metadata:
      name: nginx-deployment
      labels:
        app: nginx
    spec:
      replicas: 3
      selector:
        matchLabels:
          app: nginx
      template:
        metadata:
          labels:
            app: nginx
        spec:
          containers:
          - name: nginx
            image: nginx:1.14.2
            ports:
            - containerPort: 80
    # kubectl apply -f nginx-deployment.yaml 
    ​
    # kubectl get pods
    NAME                                READY   STATUS    RESTARTS   AGE
    nginx-deployment-66b6c48dd5-q2jgt   1/1     Running   0          97s
    nginx-deployment-66b6c48dd5-qcwxc   1/1     Running   0          97s
    nginx-deployment-66b6c48dd5-vwpk2   1/1     Running   0          97s
    ​
    # kubectl get deployment
    NAME               READY   UP-TO-DATE   AVAILABLE   AGE
    nginx-deployment   3/3     3            3           115s
    ​
    • 根据pod标签创建一个service

      # kubectl get pods --show-labels
      NAME                                READY   STATUS    RESTARTS   AGE     LABELS
      nginx-deployment-66b6c48dd5-q2jgt   1/1     Running   0          5m36s   app=nginx,pod-template-hash=66b6c48dd5
      nginx-deployment-66b6c48dd5-qcwxc   1/1     Running   0          5m36s   app=nginx,pod-template-hash=66b6c48dd5
      nginx-deployment-66b6c48dd5-vwpk2   1/1     Running   0          5m36s   app=nginx,pod-template-hash=66b6c48dd5
      ​

      apiVersion: v1
      kind: Service
      metadata:
        name: my-service
      spec:
        selector:
          app: nginx #
        ports:
          - protocol: TCP
            port: 80
            targetPort: 80  #目标端口
        type: NodePort
        
       

         # kubectl apply -f nginx-service.yaml
         # kubectl get svc
      NAME         TYPE        CLUSTER-IP      EXTERNAL-IP   PORT(S)        AGE
      kubernetes   ClusterIP   10.96.0.1               443/TCP        4d9h
      my-service   NodePort    10.96.152.189           80:32152/TCP   24s
      # 查看是否关联到app=nginx的容器
      # kubectl get ep
      NAME         ENDPOINTS                                                  AGE
      kubernetes   10.0.0.100:6443                                            4d9h
      my-service   192.168.169.129:80,192.168.169.130:80,192.168.169.131:80   84s
      ​
      # 内网访问
      # curl 192.168.169.129
      ​
      # 查看日志
      [root@k8s-master controllers]# kubectl logs nginx-deployment-66b6c48dd5-vwpk2
      192.168.235.192 - - [03/Nov/2021:14:39:25 +0000] "GET / HTTP/1.1" 200 612 "-" "curl/7.29.0" "-"
      ​
      # 外网访问
      # curl 10.0.0.101:32152
      ​
      # 查看日志
      ​
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/422404.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号