- k8s是什么?能解决什么问题?
- k8s是容器管理平台,一套复杂的开源系统
- 如何更好的维护pod,k8s第二大要素(pod控制器)
- k8s的很多对容器(pod)管理的高级特性,都是基于控制器而来
- 为什么要学习k8s?
- 引入k8s是为了更好的维护容器化部署业务,跨机器的容器、容器化业务需要考虑的网络、存储、配置文件、负载均衡、高可用性等问题,都可以用k8s默认功能处理,k8s属于是前期投入有点困难,搭建起来之后,除了学习成本,是非常好用的,从市场可以得以验证
- k8s的核心组件有哪些(⭐️⭐️⭐️⭐️⭐️)?
组件 | 功能描述 | 部署位置 |
---|---|---|
etcd | 数据库,用于存储pod的信息 | 可以单独部署,也可部署在master |
api-server | k8s所有请求的入口,k8s所有组件通信都走ssl证书,为了足够安全,你的请求是可信任,被允许,认证授权两道关卡 | 部署在master |
controller manager | 为了让你的pod更好的运行 | 部署在master |
scheduler | 调度器,决定pod调度到那台机器上 | 部署在master |
kubelet | 安装在目标的node节点上(拉镜像、运行容器、设置容器iptables流量转发规则) | 部署在master和node节点 |
container runtime | 接纳任意符合容器规范的软件,如docker软件 | 部署在master |
kube-proxy | k8s的网络管理,service、ingress规则,生成iptables规则等 | 部署在master和node节点 |
kubectl | 管理,维护k8s客户端换,和服务端交互的一个命令行工具 | 部署在master和node节点 |
kubelet | 管理pod的工具,增删改查pod再具体机器上 | 部署在master和node节点 |
flannel | 网络插件负责pod之间的网络通讯,也有其他的网络插件,如:calico | 部署在master和node节点 |
- k8s-master上运行哪些核心组件
- etcd(非必安装在master上)、apt-server、controller manager、scheduler、kube-proxy、kubectl、kubelet、flannel、docker
- k8s-node上运行哪些核心组件
- docker、kube-proxy、kubectl、kubelet、flannel
-
pod创建流程是什么样的?
-
k8s集群安装方法
- kubeadm初始化,下载k8s必备组件的镜像,运行pod
- 生成k8s的证书,配置文件
- 部署网络插件
- k8s-node 是用kubeadm join 加入集群
- kubectl 命令
- 是否指定namespace
- 设置好bash补全:安装 bash-completion-extras
- 增删改查pod资源:kubectl get pods -owide
- 快速创建一个nginx-pod: kubectl run nginx-test --image=nginx:1.20
- 修改nginx-pod的内容: kubectl exec nginx-test -- sh -c "echo '这是一个测试页面' > /usr/share/nginx/html/index.html"