Kubernetes部署容器化应用

一起探讨学习

欢迎大家进群,一起讨论学习

每天给大家提供技术干货

在这里插入图片描述

博主技术笔记 https://notes.xiyankt.com


博主开源微服架构前后端分离技术博客项目源码地址,欢迎各位star https://gitee.com/bright-boy/xiyan-blog


上篇文章介绍了如果安装Kubernetes
何为“容器化应用”?
通俗点来说,就是你把一个程序放在docker里部署,这个docker应用就是容器化应用;
比如:在docker里面部署一个springboot,这个docker+springboot一起就是一个容器化应用;
在Docker里面部署一个nginx,这个docker+nginx一起就是一个容器化应用;

在Docker里面部署一个应用怎么部?
简单来说就是 镜像 -> 启动镜像得到一个Docker容器;

在k8s里面部署一个应用怎么部?
SpringBoot程序–>打包jar包或war包–>通过Dockerfile文件生成docker镜像–>通过k8s部署这个镜像–>部署完毕;

1.在Kubernetes集群中部署一个Nginx:

# pod

kubectl create deployment nginx --image=nginx
#暴露服务
kubectl expose deployment nginx --port=80 --type=NodePort
#获取pod
kubectl get pod
访问地址:http://NodeIP:Port

2.在Kubernetes集群中部署一个Tomcat:

1、项目打包(jar、war)-->可以采用一些工具git、maven、jenkins
2、制作Dockerfile文件,生成镜像;
3、kubectl create deployment nginx --image= 你的镜像
4、你的springboot就部署好了,是以docker容器的方式运行在pod里面的;

3.K8s部署微服务(springboot程序)

3.1Dockerfile脚本

###指定java8环境镜像
FROM java:8
###复制文件到容器app-springboot
ADD docker-springboot-0.0.1.jar /test.jar
###声明启动端口号
EXPOSE 8080
###配置容器启动后执行的命令
ENTRYPOINT ["java","-jar","/test.jar"]

3.2构建镜像:docker build -t test .

3.3空运行测试(可以输出为yml或者是jsob)

kubectl create deployment test --dry-run -o yaml > deploy.yaml


kubectl create deployment test  --dry-run -o json> deploy.json

3.4Yml文件方式部署(也可以通过命令部署)

kubectl apply -f deploy.yaml (yaml是资源清单)

等价于:

kubectl create deployment springboot-k8s --image=test

部署后查看一下:

kubectl get pods

注意:boot-deploy.yaml文件里面镜像从本地拉取(Always 总是远程拉取,IfNotPresent 默认值,本地有则使用本地镜像,不拉取,Never 只使用本地镜像,从不拉取);

containers:

  • image: 38-springboot-k8s-1.0.0-jar
    name: 38-springboot-k8s-1-0-0-jar-8ntrx
    imagePullPolicy: Never

把镜像拉取策略改为Never;

3.5暴露服务端口:

kubectl expose deployment springboot-k8s --port=8080 --type=NodePort

3.6命令方式部署

kubectl create deployment springboot-k8s --image=test

4.基本命令

查看一下,相关命令:
kubectl get node(s)
kubectl get service(s)
kubectl get deployment (deploy)
kubectl get pod(s)//生成yml文件kubectl create deployment web --image=nginx -o yaml --dry-run > web.yml
//删除service
kubectl delete service nginx
//删除nginx的控制器
kubectl delete deployment nginx
//删除pod
kubectl delete pod nginx-6799fc88d8-zc48m(pod名字)
kubectl get ing(ress) --查规则

kubectl get service -n ingress-nginx
kubectl get deploy -n ingress-nginx
kubectl get pods -n ingress-nginx

看pod详情:
kubectl describe pods spring-cloud-alibaba-consumer-5d557f4765-d27d9

看pod运行日志:
kubectl logs -f spring-cloud-alibaba-consumer-8697896544-g6rsf
//kubectl命令帮助
kubectl --help
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

刘明同学呀

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值