k8s入门使用
文章目录
- 重温概念
- 入门操作
- 细节
- yml模板
- 作者声明
重温概念
1.
Pod 是什么,Controller 是什么
https://kubernetes.io/zh/docs/concepts/workloads/pods//#pods-and-controllershttps://kubernetes.io/zh/docs/concepts/workloads/pods/#pods-and-controllers
Pod 和控制器
控制器可以为您创建和管理多个 Pod,管理副本和上线,并在集群范围内提供自修复能力。
例如,如果一个节点失败,控制器可以在不同的节点上调度一样的替身来自动替换 Pod。
包含一个或多个 Pod 的控制器一些示例包括:
Deployment
StatefulSet
DaemonSet
控制器通常使用您提供的 Pod 模板来创建它所负责的 Pod
1.
Deployment&Service 是什么
deployment管理pod
service组合pod
1.
Service 的意义
统一应用访问入口;
Service 管理一组 Pod。
防止 Pod 失联(服务发现)、定义一组 Pod 的访问策略
现在 Service 我们使用 NodePort 的方式暴露,这样访问每个节点的端口,都可以访问到这
个 Pod,如果节点宕机,就会出现问题。
1.
labels and selectors
- Ingress
通过 Service 发现 Pod 进行关联。基于域名访问。
通过 Ingress Controller 实现 Pod 负载均衡
支持 TCP/UDP 4 层负载均衡和 HTTP 7 层负载均衡
步骤:
1)、部署 Ingress Controller
文件参考gulimall gitee 文档
1 | kubectl apply -f ingress-controller.yaml |
2)、创建 Ingress 规则
1 | apiVersion: extensions/v1beta1 #规则 |
如果再部署了 tomcat8;看效果;
kubectl create deployment tomcat8 –image=tomcat:8.5.51-jdk8
kubectl expose deployment tomcat8 –port=88 –target-port=8080 –type=NodePort
kubectl delete xxx 删除指定资源
随便配置域名对应哪个节点,都可以访问 tomcat6/8;因为所有节点的 ingress-controller 路
由表是同步的。
入门操作
部署一个 tomcat
k8s 会自动选择一个节点进行部署 如果已部署的节点发生宕机会在其他节点自动恢复1
2
3
4
5
6
7
8#部署tomcat6
kubectl create deployment tomcat6 --image=tomcat:6.0.53-jre8
#查看tomcat6 yml部署方式
kubectl create deployment tomcat6 --image=tomcat:6.0.53-jre8 --dry-run -o yaml
#查看tomcat6 yml部署方式 并将其输入到一个文件中
kubectl create deployment tomcat6 --image=tomcat:6.0.53-jre8 --dry-run -o yaml > tomcat6.yaml
kubectl get all #获取所有资源
kubectl get pods -o wide #可以获取到 tomcat 信息暴露 端口 访问
1
2
3#暴露
kubectl expose deployment tomcat6 --port=80 --target-port=8080 --type=NodePort
kubectl expose deployment tomcat6 --port=80 --target-port=8080 --type=NodePort --dry-run -o yaml
Pod 的 80 映射容器的 8080;service 会代理 Pod 的 80
NodePort节点端口 模式 会随机分配一个端口
1 | #查看服务 |
ip+端口 成功
- 动态扩容测试
1
2
3
4
5
6#查看有哪些
kubectl get deployment
#应用升级
kubectl set image (--help 查看帮助)
#扩容:把tomcat6扩容3份
kubectl scale --replicas=3 deployment tomcat6
扩容了多份,所有无论访问哪个 node 的指定端口,都可以访问到 tomcat6
查看扩容是否成功
缩容只需将replicas数量设置小一点 就会自动停掉一些 进行缩容
- 删除
1
2
3
4
5
6#查询所有
kubectl get all
#删除 deploy
kubectl delete deploy/nginx
#删除 service
kubectl delete service/nginx-service
流程;创建 deployment 会管理 replicas,replicas 控制 pod 数量,有 pod 故障会自动拉起
新的 pod
细节
- kubectl 文档
https://kubernetes.io/zh/docs/reference/kubectl/overview/https://kubernetes.io/zh/docs/reference/kubectl/overview/ - 资源类型
https://kubernetes.io/zh/docs/reference/kubectl/overview//#%E8%B5%84%E6%BA%90%E7%B1%BB%E5%9E%8Bhttps://kubernetes.io/zh/docs/reference/kubectl/overview/#%E8%B5%84%E6%BA%90%E7%B1%BB%E5%9E%8B - 格式化输出
https://kubernetes.io/zh/docs/reference/kubectl/overview//#%E6%A0%BC%E5%BC%8F%E5%8C%96%E8%BE%93%E5%87%BAhttps://kubernetes.io/zh/docs/reference/kubectl/overview/#%E6%A0%BC%E5%BC%8F%E5%8C%96%E8%BE%93%E5%87%BA - 常用操作
https://kubernetes.io/zh/docs/reference/kubectl/overview//#%E7%A4%BA%E4%BE%8B-%E5%B8%B8%E7%94%A8%E6%93%8D%E4%BD%9Chttps://kubernetes.io/zh/docs/reference/kubectl/overview/#%E7%A4%BA%E4%BE%8B-%E5%B8%B8%E7%94%A8%E6%93%8D%E4%BD%9C - 命令参考
https://kubernetes.io/docs/reference/generated/kubectl/kubectl-commandshttps://kubernetes.io/docs/reference/generated/kubectl/kubectl-commands
yml模板
1 | #yml 形式查看某个pod资源信息 |
作者声明
1 | 如有问题,欢迎指正! |