k8s

k8s

1. k8s基础-基本概念

1.1 为什么要用k8s

裸容器存在的问题:

  1. 宿主机宕机无法恢复
  2. 程序级健康检查依旧不到位
  3. 程序的扩容、部署、回滚和更新依旧不够灵活
  4. 端口问题并未得到解决

容器编排的优点:

  1. 轻松管理成千上万的业务容器
  2. 全自动容灾机制
  3. 全自动扩缩容、回滚
  4. 原生支持服务发现和负载均衡
  5. 更加灵活方便的健康检查

1.2 k8s架构剖析

kubernetes是谷歌开发的第三个容器管理系统,提供了资源调度、扩容缩容、服务发现、存储编排、自动部署和回滚,并且具有天生高可用、负载均衡、故障自动恢复等功能的“生态系统”,目前已成为云原生领域的标准。

1.3 控制节点组件介绍

1.4 Scheduler和Controller是有状态的组件

apiserver是没有状态的组件
Scheduler和Controller是有状态的组件,所以说Scheduler和Controller会有选主的机制,不管Scheduler和Controller有几个节点,但只有一个节点在工作

  1. k8s版本在1.20以下,会在kubectl get ep Scheduler/Controller -n kube-system -oyaml metadata.annotations保存主节点信息

  2. k8s版本在1.20以上
    kubectl get leases -n kube-system

1.5 工作节点组件介绍

coredns会给每一个pod中的 /etc/resolv.conf 中注入一条 nameserver [coredns的地址]

1.6 什么是pod

containerd是具有命名空间隔离性的
查询k8s的容器要指定命名空间 k8s.io
ctr -n k8s.io c ls

1.7 为什么要引入pod

  1. 强依赖的服务需要部署到一起
  2. 多个服务需要协同工作
  3. 兼容其他CRI标准的运行时

1.8 定义一个pod

kubectl run nginx-run --image=registry.cn-beijing.aliyuncs.com/k8s-study-test/nginx:1.15.2

我们用命令生成yaml文件,--dry-run=client意思是将数据发给apiserver但是不持久化数据

[root@k8s-master01 pra]# cat pod.yaml 
apiVersion: v1 # apiVersion版本号
kind: Pod # 资源的类型
metadata: # 元数据信息
  labels: # 标签
    run: nginx1
  name: nginx1 # pod的名称
spec: # 定义pod
  containers: # 配置容器的地方,可以配置多个
  - image: registry.cn-beijing.aliyuncs.com/k8s-study-test/nginx:1.15.2
    name: nginx1

api版本查看方式

kubectl api-resources

[root@k8s-master01 pra]# kubectl explain pod
[root@k8s-master01 pra]# kubectl explain pod.spec

1.9 修改容器的启动命令

posted @   yao-yuan-ge  阅读(11)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 25岁的心里话
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 按钮权限的设计及实现
点击右上角即可分享
微信分享提示