k8s 基础入门

1.namespace

k8s中的namespace和docker中namespace是两码事,可以理解为k8s中的namespace是为了多租户,dockers中的namespace是为了网络、资源等隔离

2.deployment

kubectl create #新建

kubectl aply #新建 更新

升级:

滚动升级,新版pod逐步替代老pod,用户无感知

两种升级方式:

kubectl aply

kubectl set image

#查看升级步骤

kubectl describe deployment pod名字

应用发布失败回滚

kubectl rollout history deployment/web(资源名称) #查看历史版本

kubectl rollout undo deployment/web(资源名称) #回滚上一个版本

kubectl rollout undo deployment/web(资源名称) --to-revision=2 # 回滚指定版本

扩缩容

replicas参数控制pod副本数量

1.修改yaml的replicas值,再apply

2.kubectl scale deployment web --replicas=10

应用下线

kubctl delete deploy/web(资源名称)

kubctl delete svc/wed

应该项目部署最少需要:deployment和service两个资源

deployment负责应用的部署、扩缩容、升级回滚

service负责连接路由,端口映射

3.pod

pod是k8s创建和管理的最小单元

一个pod由一个容器或者多个容器组成

一个Pod可以理解为一个应用实例,提供服务

Pod中容器始终部署在一个Node上

Pod中容器共享网络、存储资源

查看一个pod中有几个容器:

kubectl get pods pod名 -o jsonpath={.spec.containers\*.name}

kubectl get po -n tidb-cluster结果中,READY右侧是pod中容器数,左侧是启动的容器数

多个容器时,主容器遵循一个容器一个应用程序规则

pod.yaml方式创建pod,这种方式实际使用比较少,因为无法管理,无法扩缩容等等,通常通过deployment方式创建

pod.yaml:和deployment中的容器配置字段相同

4.service

端口转发、负载均衡

kubelet get ep

#查看service

kubelet get svc

集群内部指的是集群里的所有node和pod可以访问ClusterIP,TCP/IP第四层的转发

NodePort,可以集群外访问,端口默认生成,30000-32767

ss -antp | grep port号

k8s会请求底层云平台(阿里云,腾讯云、aws)上的负载均衡器(LB),将每个Node(IP+prot)作为后端添加进去,自建的云平台无法适配

5.Ingress

未弥补NodePort不足而生,实现基于域名的负载均衡转发

NodePort存在不足:

1.一个端口只能一个服务使用,端口需要提前规划

2.只支持4层负载均衡

用户访问的是ingress-controller

ingress是基于service创建的一组规则

kubectl get ingress 查看规则

相关推荐
Linux-18747 小时前
分布式链路追踪系统之docker-compose安装skywalking
云原生·docker-compose·skywalking·分布式链路追踪系统·应用程序性能监控
生活爱好者!13 小时前
我把NAS当作下载机,docker一键部署qb
运维·docker·容器
隔窗听雨眠13 小时前
Spring Boot在云原生时代的编程范式革新研究
spring boot·后端·云原生
Hui Baby14 小时前
K8S使用CRD和控制器简单应用
云原生·容器·kubernetes
阿里云云原生15 小时前
从“告警驱动”到“巡检驱动”:Agent 智能体如何实现前端体验治理的闭环?
云原生
AOwhisky17 小时前
Python 学习笔记(第十三期)——运维自动化(下·前篇):远程命令执行——paramiko基础篇
运维·python·学习·云原生·自动化·运维开发·paramiko
AOwhisky17 小时前
Python 学习笔记(第十四期)——运维自动化(下·中篇):远程文件传输——paramiko进阶篇
运维·python·学习·云原生·自动化·文件传输·paramiko
做个文艺程序员17 小时前
Linux第22篇:用Docker容器化你的Java SaaS应用:一次构建,随处运行
java·docker·容器
Zhu75819 小时前
在k8s环境部署Apache Superset最新版
容器·kubernetes·apache
小的博客20 小时前
windows下安装Docker Desptop
运维·docker·容器