2种创建部署的方式
有2种创建方式
- 一种是采用
命令行
的模式 - 一种是采用
yaml文件
的方式
kubectl文档 ==>官网文档
命令里面的资源类型==>官方文档
格式化输出==>官方文档
示例-常用操作==>官方文档
如图:
一、查找镜像
如图:
二、部署tomcat(2种)
1.1、命令行方式创建部署
- 主节点会去调度其他节点,来下载镜像,启动容器
- k8s里面最小的单位是pod,容器在pod里面
k8s是基础docker,所以要配置镜像加速,不然很慢,很容易拉取失败
- 要保证网络的稳定性和网速,不要使用手机热点
1、检查网络
ping www.baidu.com
2、拉取tomcat8
kubectl create deployment tomcat8 --image=tomcat:8.5.38-jre8
3、查看k8s里面的所有资源(里面有4部分)
kubectl get all
3、查看详细信息,查看toncat部署在哪个节点
kubectl get pods -o wide
4、查看pod的详细信息
kubectl describe pod
删除
# kubectl delete deploy/tomcat8
如图:
拉取中
1分钟后拉取成功-如图
1.1.1、遇到这种请检查网络和docker
- ImagePullBackOff 检查网络(docker、镜像加速、外网、部署的网络配置)
- ErrImagePull 镜像地址不对
1.1.2、模拟宕机tomcat效果,关闭node2
1、查看节点状态
kubectl get nodes
node2状态为notReady
2、查看tomcat状态
- 注明:需要一小会时间才会监控到(预计2-3分钟)
- master会在选一个节点,再次拉取tomcat
kubectl get pods -o wide
3、重启node2节点,他启动完会移除他下面的tomcat
1.2.3 、暴漏tomcat访问
- -port=80 指定pod端口
- –target-port=8080 pod容器暴漏的端口
- –type=NodePort 以什么形式暴漏
映射命令
kubectl expose deployment tomcat8 --port=80--target-port=8080--type=NodePort
删除服务
kubectl delete service/tomcat8
查看
kubectl get svc
#详细
kubectl get svc -o wide
如图:
访问ip:端口
- http://192.168.56.100:32742/
- http://192.168.56.101:32742/
- http://192.168.56.102:32742/
- 都可以
1.2、yaml方式创建部署
1.2.1、删除命令行创建的
#查看
kubectl get all
#删除服务
kubectl delete service/tomcat8
#删除部署
kubectl delete deploy/tomcat8
如图:
1.2.2、查看部署tomcat的yaml内容
查看帮助
kubectl create deployment tomcat8 --image=tomcat:8.5.38-jre8 --help
表示尝试运行,加上 -o yaml 会打印成yaml格式
查看yaml内容
kubectl create deployment tomcat8 --image=tomcat:8.5.38-jre8 --dry-run -o yaml
1.2.3、生成yaml文件
输出到 tomcat8.deployment.yaml
kubectl create deployment tomcat8 --image=tomcat:8.5.38-jre8 --dry-run -o yaml >tomcat8.deployment.yaml
编码文件删除没用的信息,并设置创建3个
vi tomcat8.deployment.yaml
如图:
1.2.4、部署,应用文件
kubectl apply -f tomcat8.deployment.yaml
如图:
1.2.5、暴露(映射)端口出来
1.2.5.1、查看yaml内容
kubectl expose deployment tomcat8 --port=80 --target-port=8080 --type=NodePort --dry-run -o yaml
1.2.5.2、信息合并到tomcat8.deployment.yaml文件
将映射的yaml内容复制到tomcat8.deployment.yaml
vi tomcat8.deployment.yaml
1.2.5.4、删除刚才创建的部署,然后再次应用,创建映射以前生效
删除
kubectl apply -f tomcat8.deployment.yaml
再次应用文件
kubectl apply -f tomcat8.deployment.yaml
如图:
1.2.6、访问
拓展:这边还可以结合ingress,采用域名的方式,并能负载聚合
三、命令扩容和缩容
扩容
#查看
kubectl get deployment
#扩容成3个
kubectl scale --replicas=3 deployment tomcat8
#pod信息
kubectl get pods -o wide
扩容如图:
缩容
# 缩容成1个
kubectl scale --replicas=1 deployment tomcat8
#pod信息
kubectl get pods -o wide
缩容如图:
四、命令小结
#查看节点
kubectl get nodes
#创建部署
kubectl create deployment tomcat8 --image=tomcat:8.5.38-jre8
#查看所有
kubectl get all
#查看pod详情
kubectl get pods
#查看pod详情
kubectl get pods -o wide
#查看pod的详情内容
kubectl describe pod
#服务详情
kubectl get svc -o wide
#删除部署
kubectl delete deploy/tomcat8
#删除service
kubectl delete service/tomcat8
#扩容tomcat8 为3
kubectl scale --replicas=3 deployment tomcat8
#缩容tomcat8 为1
kubectl scale --replicas=1 deployment tomcat8