k8s部署容器化应用-nginx
查看运行时容器:
一个docker容器里边可以有多个docker容器应用,比如mysql或者一些服务应用如3个spring应用程序,这3个应用程序可以放到一个pod里边,即一个pod里可以放多个docker容器应用???
kubectl get pods意思是查询pod,后边的-n kube-system是指定的命令空间范围,-n即-namespce命令空间,即查询kube-system命令空间下的pod,即查询k8s集群工作空间中的kube-system空间下的pod下的容器
pod里面运行的是一个或多个docker容器
k8s部署容器化应用:
一般过程:
将spring boot程序用docker的方式打成镜像(制作镜像),然后再用k8s部署镜像(运行镜像),即k8s部署容器化应用。k8s运行的都是docker容器,所以要先把应用都放到docker里。
k8s运行nginx镜像-nginx:
不需要制作镜像,因为一般docker里边能查询到nginx镜像,直接执行命令部署即可,但是需要暴露端口
kubectl create deployment nginx --image=nginx命令拆解:
kubectl连接k8s集群,create deploymnet 创建一个控制器,nginx表示创建的控制器名称,--image=nginx表示拉取nginx镜像,连接起来就是拉取nginx镜像并运行起来,然后创建一个nginx名称的pod把nginx镜像部署到pod,即pod里会有nginx的docker容器,所以可以在执行完命令后通过查询创建的pod的运行情况来确定是否正确执行完成命令。整个过程会让k8s集群有nginx镜像
第2个命令kubectl expose deployment nginx --port = 80 --type=NodePort命令是用来暴露端口的,为了方便用户在浏览器访问,即nginx镜像暴露的端口为80,用户可以在浏览器用工作节点的IP端口来访问
1.在master节点132查询当前docker中是否有nginx镜像------目前没有
2.在master节点执行kubectl create deployment nginx --image=nginx命令
注意:在执行该命令的过程中,涉及到拉取镜像,而拉取镜像需要一定的时间,所以短时间内可能在master节点执行docker images也没有该镜像,这个时候要多等一会儿。。。。。。
k8s部署spring boot程序:
制作镜像+执行部署命令
用git拉下代码,maven编译,jenkins打包,再制作dockerfile文件,把打包的jar或war包生成docker镜像,然后执行kubectl create deployment nginx--image=你的镜像名称,把spring boot应用程序镜像运行到pod里
k8s部署tomacat镜像:
不需要制作镜像,因为一般docker里边能查询到nginx镜像,直接执行命令部署即可,但是需要暴露端口
如下截图在执行kubectl create depolyment tomcat --image=tomcat时,最好先在master节点查询下有没有docker镜像,docker search tomcat,如果没有该镜像应该是需要自己制作镜像否则执行kubectl命令不成功,第2个命令kubectl expose deployment tomcat --port = 8080 --type=NodePort命令是用来暴露端口的,为了方便用户在浏览器访问,即tomcat镜像暴露的端口为8080
docker运行nginx镜像:
docker search nginx:查询nginx镜像,docker pull nginx:拉取nginx镜像,docker run nginx:运行nginx镜像
好找工作吗,各位老铁。。。。。。。。。。。。。。。。