• k8s集群安装——(二)部署Tomcat运行,扩容,删除


    1 在主节点上部署Tomcat服务器

    kubectl create deployment tomcat6 --image=tomcat:6.0.53-jre8
    
    • 1

    在这里插入图片描述

    获取所有的资源:

    [root@k8s-node1 k8s]# kubectl get all
    
    • 1

    在这里插入图片描述

    kubectl get pods -o wide 可以获取到tomcat部署信息,能够看到它被部署到了k8s-node2上了
    #监控
    在这里插入图片描述

    watch kubectl get pod -n kube-system -o wide
    在这里插入图片描述

    [root@k8s-node1 k8s]# kubectl get all -o wide
    
    • 1

    在这里插入图片描述

    查看node2节点上,下载了哪些镜像:

    [root@k8s-node2 opt]# docker images
    
    • 1

    在这里插入图片描述
    这是在node2节点上的,node3是没有的。
    在这里插入图片描述

    查看Node2节点上,正在运⾏的容器

    [root@k8s-node2 opt]# docker ps
    
    • 1

    在node1上执⾏:

    [root@k8s-node1 k8s]# kubectl get pods
    
    • 1

    在这里插入图片描述

    [root@k8s-node1 k8s]# kubectl get pods --all-namespaces
    
    • 1

    在这里插入图片描述
    从前⾯看到tomcat部署在Node2上,现在模拟因为各种原因宕机的情况,将node2关闭电源,观察情况。

    [root@k8s-node1 ~]# kubectl get nodes
    
    • 1

    在这里插入图片描述

    [root@k8s-node1 ~]# kubectl get pods -o wide
    
    • 1

    在这里插入图片描述

    有 -o就可以看到Tomcat运行在哪个节点上
    此时,把node2节点关闭,模拟宕机情况
    此时没有同步好 状态去获取节点信息时,可以看到三个节点还是就绪状态
    在这里插入图片描述
    等待一分钟左右的时候,节点的状态都已经同步好了
    在这里插入图片描述
    在namespace没有同步过来的时候查看
    在这里插入图片描述
    等待两分钟左右的时候查看
    在这里插入图片描述
    已经完全替换到node3上面了。到node3上查看镜像信息
    在这里插入图片描述
    当某一个节点有故障,那么将会在另一个节点会把那个节点上的重新拉取起来。
    在这里插入图片描述
    当我再次把node2启动起来的时候,
    在这里插入图片描述
    对比一下,node2节点启动的前后差距,关闭状态下,因为发送关闭pod节点信息node2接收不到,所以状态会变成Terminating,而在node2启动以后,他会接收到关闭pod节点的命令,所以在下图他会正常关闭
    在这里插入图片描述

    2、暴露tomcat访问

    一个service可以有同时操作多个pod,一个pod里面有多个容器,

    现在系统运行的pod:
    在这里插入图片描述

    pod的80映射容器的8080;server会带来pod的80
    查看服务:

    [root@k8s-node1 ~]# kubectl get svc
    
    • 1

    在这里插入图片描述
    这个服务是系统默认的服务
    暴露service的命令如下;在master上执⾏

    kubectl expose deployment tomcat6 --port=80 --target-port=8080 --type=NodePort
    
    • 1

    为了让外部能访问到集群内部,这里节点映射的含义是,让随机的节点的端口映射80端口,然后让80端口映射到8080端口。
    在这里插入图片描述

    [root@k8s-node1 ~]# kubectl get svc -o wide
    
    • 1

    在这里插入图片描述

    http://192.168.56.201:32222/
    在这里插入图片描述

    [root@k8s-node1 ~]# kubectl get all
    
    • 1

    3、动态扩容测试

    [root@k8s-node1 ~]# kubectl get deployment
    
    • 1

    应⽤升级: kubectl set image (–help查看帮助)

    扩容:kubectl scale --replicas=3 deployment tomcat6

    这里配置启动三个Tomcat。如果除了master以外,只剩下两个节点的话,那么会有一个节点运行两个Tomcat 。master不做具体的工作,只做协调工作。

    [root@k8s-node1 ~]# kubectl scale --replicas=3 deployment tomcat6 
    
    • 1

    在这里插入图片描述

    [root@k8s-node1 ~]# kubectl get pods -o wide
    
    • 1

    在这里插入图片描述
    可以看到有三个pod被启动了

    [root@k8s-node1 ~]# kubectl get svc -o wide
    
    • 1

    扩容了多份,所有⽆论访问哪个node的指定端⼝,都可以访问到tomcat6

    缩容:kubectl scale --replicas=2 deployment tomcat6

    [root@k8s-node1 ~]# kubectl scale --replicas=2 deployment tomcat6 
    
    • 1
    [root@k8s-node1 ~]# kubectl get pods -o wide
    
    • 1

    在这里插入图片描述

    4、删除

    kubectl get all

    #查看所有资源
    [root@k8s-node1 ~]# kubectl get all
    
    • 1
    • 2

    删掉deployment以后,跟deployment有关的pod也会被删掉。

    #删除deployment.apps/tomcat6
    [root@k8s-node1 ~]# kubectl delete deployment.apps/tomcat6
    
    • 1
    • 2

    在这里插入图片描述

    #查看剩余的资源
    [root@k8s-node1 ~]# kubectl get all
    
    • 1
    • 2

    在这里插入图片描述

    #删除service/tomcat6
    [root@k8s-node1 ~]# kubectl delete service/tomcat6 
    
    • 1
    • 2

    在这里插入图片描述

    [root@k8s-node1 ~]# kubectl get all
    
    • 1

    在这里插入图片描述
    现在访问的时候,就访问不到我们的pod了。

  • 相关阅读:
    SpringCloud环境
    前端Vue返回顶部和底部四个角[样式加方法](代源码和详图)
    将存在课题的过程可视化,丰田的“自工程完结”是什么?
    Linux下C语言操作网卡的几个代码实例?特别实用
    【高项】- 进度管理论文
    OKR助理源代码说明
    爱宠-饲养小助手APP隐私政策
    Python可视化数据分析09、MySQL读写
    SAP 快速Debug财务替代GGB1
    风控建模一、初步认识风控
  • 原文地址:https://blog.csdn.net/delete_bug/article/details/126802430