k8s基本介绍

Kubernetes, also known as K8s, is an open source system for automating deployment, scaling, and management of containerized applications.

Kubernetes,也称为k8,是一个用于自动化部署、扩展和管理容器化应用程序的开源系统。

                     使用go语言编写https://github.com/kubernetes/kubernetes

                     目前最高版本是v1.30    https://kubernetes.io/zh-cn/


Google 15 年生产环境的运维经验-->borg系统 不是开源的

借鉴borg系统 ,使用go语言开发了k8s

针对k8s方向的技术,统称为云原生技术 ---》CNCF --》云原生计算基金会

v1.23 前版本都默认使用docker作为容器运行时软件

v1.24 后默认使用containerd作为容器运行时软件,边缘化docker,但是还是支持docker

API 服务器是 Kubernetes 控制平面的组件, 该组件负责公开了 Kubernetes API,负责处理接受请求的工作。 API 服务器是 Kubernetes 控制平面的前端。6443端口 k8s集群入口


- `etcd` 保存了整个集群的状态;一致且高可用的键值存储,用作 Kubernetes 所有集群数据的后台数据库。

- `kube-apiserver` 提供了资源操作的唯一入口,并提供认证、授权、访问控制、API 注册和发现等机制;

- `kube-controller-manager` 负责维护集群核心对象的状态,比如故障检测、自动扩展、滚动更新等;

- `kube-scheduler` 负责资源的调度,按照预定的调度策略将 Pod 调度到相应的机器上;

- `kubelet` 负责维持容器的生命周期,同时也负责 Volume(CVI)和网络(CNI)的管理;调用docker去启动需要的容器,单独的程序,不在容器而在宿主机运行

- `Container runtime` 负责镜像管理以及 Pod 和容器的真正运行(CRI),默认的容器运行时为 Docker;

- `kube-proxy` 负责为 Service 提供 cluster 内部的服务发现和负载均衡;

-‘kube-proxy’单独的Pod 在宿主机运行,网络代理,网络数据的进去和出去(snat,dnat),负载均衡(ipvs,iptables)

DNS:coredns集群里进行域名解析的

网络通信插件:calico(大规模),flannel(小规模),terway


1.docker和k8s的关系?

       容器技术:

              底层技术: linux 内核实现的  --》lxc linux的容器技术

                     命名空间--》隔离

                     cgroup --》资源的控制,例如:cpu,内存,磁盘IO

LXC,就是Linux容器虚拟技术(Linux container)

Core OS --》Rocket

docker --》docker ---》一家独大 --》制定标准

容器技术的优势:

       1.资源消耗少  启动速度  .扩展非常方便   管理非常方便

巨头: Google ,ibm,redhat等

cncf 云原生基金会--》google,微软、Red Hat、IBM、Docker、CoreOS、 Mesosphere和Saltstack 等公司,相继加入K8S。     VMware、HP、Intel等公司,也陆续加入。

K8S,就是基于容器的集群管理平台,它的全称,是kubernetes

cncf 云原生基金会 --》prometheus 第2个项目

2.swarm和k8s的区别?

       swarm 是docker公司自己搞的 基于容器的集群管理平台

       k8s--》CNCF

       k8s为什么能赢swarm?

              1.背后的大佬多

              2.性能和功能有优势

              3.生态系统的考虑,未来的更新和发展

k8s刚刚出来需要推广,需要得到认可--》底层的容器管理使用docker --》借势docker发展

k8s 得到认可后 跳过docker 直接使用containd可以实现容器技术,所以在1.23版本后不用docker

4.为什么使用容器技术会节约成本?

       各大互联网公司都在推容器化--》节约成本:硬件的使用率和饱和度问题得到提升,人力的运维成本

nfs不是特别合适的解决方案:

       1.nfs使用传统的网络 : 如果网络速度不快,数据在传输的过程中有延迟或者丢失

使用SAN(存储区域网络)

常用命令

  1. kubectl create deployment
  2. kubectl get pod -o wide
  3. node -o wide
  4. rs 副本控制器
  5. deployment  deploy
  6. ns namespace
  7. services svc
  8. kubectl describe   查询详细信息
  9. Troubleshooting 故障排查 解决故障
  10. kubectl logs
  11. kubectl exec   -it -- bash进入容器内部
  12. kubectl cluster-info
  13. kubectl apply -f *.yml
  14. kubectl delete
  15. kubectl explain   yaml文件的作用:就是给k8s传递参数,告诉k8s的控制器如果去创建资源 启动资源的时候,使用yaml文件去启动,这个文件里的指令有什么作用,哪些需要接,哪些不需要接
  16. kubectl explain ResourceQuota.metadata
  17. kubectl top node   查看cpu和内存的使用
  18. kubectl api-resources  查看k8s内部有哪些资源类型和接口版本
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值