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

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

在这里插入图片描述

获取所有的资源:

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

在这里插入图片描述

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

在这里插入图片描述

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

[root@k8s-node2 opt]# docker images

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

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

[root@k8s-node2 opt]# docker ps

在node1上执⾏:

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

在这里插入图片描述

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

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

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

在这里插入图片描述

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

在这里插入图片描述

有 -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

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

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

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

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

在这里插入图片描述

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

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

3、动态扩容测试

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

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

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

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

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

在这里插入图片描述

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

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

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

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

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

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

在这里插入图片描述

4、删除

kubectl get all

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

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

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

在这里插入图片描述

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

在这里插入图片描述

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

在这里插入图片描述

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

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

Logo

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

更多推荐