k8s 基础入门

本文介绍了Kubernetes中的核心概念,包括namespace用于多租户隔离,deployment的部署、升级与回滚机制,以及service的负载均衡和pod的基础概念。还讨论了NodePort和Ingress在集群内外访问的应用。
摘要由CSDN通过智能技术生成

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 查看规则

  • 14
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

浩澜大大

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

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

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

打赏作者

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

抵扣说明:

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

余额充值