0.云原生
1.k8s概念
1. k8s集群的两种管理角色
-
Master:集群控制节点,负责具体命令的执行过程。master节点通常会占用一股独立的服务器(高可用部署建议用3台服务器),是整个集群的首脑。
Master节点一组关键进程:kubernetes API Servier(kubeapiserver)
kubernetes controller Manager(kube-controller-mannager)
kuberntes Scheduler(kube-scheduler) -
Node:是k8s的工作负载节点
Node节点一组关键进程:kubelet(负责pod对应的容器的创建、启动等任务)
kube-proxy(负责k8s service的通信与负载均衡机制)
docker-engine(Docker引擎,负责本机的容器的创建、管理工作)
2.k8s基本概念
pod:
Replication Controller(RC):就是定义一个期望的场景,即声明一种pod的副本数量在任意时刻都符合一个预期值;
RC的定义包含如下部分:
- pod期待的副本数(replicas);
- 用于筛选目标Pod的label Selector;
- 当pod的副本数量小于预期数量时,用于创建新pod的pod模板(template)
Deployment:解决pod的编排问题
Horizontal Pod autoscaler(HPA):通过追踪分析RC控制的所有目标Pod的负载变化情况,来确定是否需要针对性的调整目标pod的副本数
2.k8s 使用
1.k8s安装
2.k8s命令行
k8s常用命令:
对象管理
#创建deployment资源
kubectl create -f nginx-deployment.yaml
#查看deployment
kubectl get deploy
#查看ReplicaSet
kubectl get rs
#查看pods所有标签
kubectl get pods --show-labels
#根据标签查看pods
kubectl get pods -l app-nginx
#滚动更新镜像
kubectl set image deployment/nginx-deployment nginx-nginx:1.11
或者
kubectl edit deployment/nginx-deployment
或者
kubectl apply f nginx deployment.yaml
#实时观察发布状态:
kubectl rollout status deployment/nginx-deployment
#查看deploymnet 历史修订版本
kubectl rollout history deployment/nginx-deployment
kubectl rollout history deployment/nginx deploymnet rcvison=3
#滚动到以前版本
kubectl rollout undo deployment/nginx-deployment
kubectl rollout undo deployment/nginx-deployment --to-reverison=3
#扩展deployment的pod副本数量
kubectl scale deployment nginx deployment replicas=10
#设置启动扩展/缩容
kubectl autoscale deployment nginx-deployment --min=10 --max=15 --cpu-percent=80
#查看日志
kubectl logs -l app=nginx -f
#删除服务
kubectl delete -f nginx-deployment.yaml
kubectl delete -f nginx-service.yaml
#查看service endpoint后面节点
kubectl get ep nginx-service
pod管理,增删该查
#创建pod资源
kubectl create -f pod.yaml
#查看pods
kubectl get pods pod-test
#查看pod描述
kubectl describe pod pod-test
#替换资源
kubectl replace -f pod.yaml -force
#删除资源
kubeclt delete pod pod-test
kubectl get all
#查看启动实时日志
kubecl logs po/pod-test -f
#进入pod中容器
kubeclt exec pod-test -it bash
#查看容器中变量
echo $Test
#退出容器
exit
#查看pod详情
kubeclt describe pod-test
kubectl get pods -o wide
#查看k8s字段描述资源
kubectl explain pods.spec.containers
#访问页面
curl -I 192.164.11:80/index.html
kubectl get pods -n xx命名空间
Kubectl logs -f 服务实例id -n xx命名空
minikube get-k8s-versions: 查看k8s最新版本
minikube dashboard
minikube status
3.k8s网络

4.k8s负载均衡
5.k8s存储
持久化存储:
6.k8s集群安全机制
7.heml使用
8.k8s监控
9.k8s部署java项目
10.k8s常见知识点
1.静态pod与普通pod的区别?
静态Pod: 是直接在Kubernetes集群的某个节点上运行,而不是通过Kubernetes的API服务器进行管理的;这些Pod不是由Kubernetes的控制器(如Deployment、StatefulSet等)管理的,而是通过节点上的特定配置文件直接创建的。
动态Pod: 是通过Kubernetes API服务器管理的,它们由控制器(如Deployment、StatefulSet等)动态创建和管理的。这些Pods的生命周期、扩展和故障恢复都是自动管理的;
需要直接与节点交互或在集群初始化阶段快速部署Pods,使用静态Pod可能更合适。
如果需要自动化管理、高可用性和易于扩展的特性,使用动态Pod(通过控制器管理) 更合适。
2.Node与Node,Pod与Node之间的通信?
Node与Node之间通过容器网络插件flannel实现;
Pod与Node之间通信:
同一 Node 上的 Pod:可以直接通过 IP 地址或 DNS 名称进行通信
不同 Node 上的 Pod:通过 Kubernetes service或 Ingress 进行通信
3.pod的创建?
- 用户提交Pod定义:用户到API Server
- 认证与鉴权(Authentication & Authorization)
当执行kubectl apply -f pod.yaml时,请求首先到达API Server - Kube-Scheduler调用资源,选择适合的节点运行pod
- 持久化存储(etcd写入)
API Server将Pod配置写入etcd集群,此时Pod处于Pending状态
4.docker /containerd /CRI区别?
docker: 是一个完整的容器管理平台,提供镜像构建、容器运行、网络管理、存储卷等全生命周期功能。它包含 Docker CLI(用户交互工具)、Docker Daemon(守护进程)等组件,底层依赖 Containerd 作为运行时
containerd: 是轻量级容器运行时,专注于容器的生命周期管理(创建、启动、监控、销毁)和镜像传输/存储。作为 Docker 的底层组件,Containerd 独立于 Docker,通过 CRI 直接与 Kubernetes 集成,无需额外适配层
CRI: 是 Kubernetes 定义的接口规范(基于 gRPC),用于标准化容器运行时与 Kubelet 的交互。CRI 不直接管理容器,而是为 Kubernetes 提供统一的容器操作接口,支持多种运行时(如 Containerd、CRI-O)
5.k8s使用的网络是什么?flannel
3. k8s yaml编写工具
- https://k8syaml.com/
- idea k8s插件,效果如下:
- k8s提供了在线动态模版,常见的预定义配置模版如下:
-
kcm :ConfigMap
-
kdep:Deployment
-
kpod:Pod
-
kres:Generic resource
-
- idea k8s插件使用参考连接:
https://juejin.cn/post/7122400716110430245
https://blog.csdn.net/J080624/article/details/14346370
4.heml包管理
5.k8s与rancher架构方案:
6. 生产就绪的检查清单
7.参考资料
- https://www.w3cschool.cn/kubernetes/
- KubeSphere 容器管理平台:https://kubesphere.io/zh/
- rancher容器管理平台:https://www.rancher.cn/quick-start/
- portainer :容器管理工具 https://github.com/portainer/portainer
- MinIO:对象存储库,兼容aws s3云存储服务 https://github.com/minio/minio
- 日志分析软件splunk:https://www.aizws.net/course/splunk/splunk-index#article_content
- k8s playground: killercoda.com
- https://www.yuque.com/leifengyang/oncloud