first commit

This commit is contained in:
douboer
2025-09-17 16:08:16 +08:00
parent 9395faa6b2
commit 3ff47c11d5
1318 changed files with 117477 additions and 0 deletions

105
kubernetes.md Normal file
View File

@@ -0,0 +1,105 @@
# Kubernetes
## questions
- chart, image 关系
- kubernetes ,docker 关系
- kubernetes主节点数量
- 应用部署在worker上
- k8s安装应用部署
Pod作为基本的执行单元它可以拥有多个容器和存储数据卷
Kubelet才是Pod是否能够运行在特定Node上的最终裁决者而不是scheduler或者DaemonSet。
## 使用
kubectl top node
kubectl top pods -A
kubectl describe nodes beta-ceshi-funeng-1
## helm
- 管理、编辑与更新大量的Kubernetes配置文件。
- 部署一个含有大量配置文件的复杂Kubernetes应用。
- 分享和复用Kubernetes配置和应用。
- 参数化配置模板支持多个环境。
- 管理应用的发布回滚、diff和查看发布历史。
- 控制一个部署周期中的某一些环节。
发布后的测试验证。
## [业务连续性](https://support.huaweicloud.com/bestpractice-cce/cce_bestpractice_00223.html)
## Some Features
- 使用hostAliases配置Pod /etc/hosts
## deployment / release
- [Kubernetes蓝绿、金丝雀、滚动部署](deployment.md)
## 容器化改造
- [对传统应用进行容器化改造](dock_trans.md)
- Docker vs. Containerd
CCE支持用户选择containerd和docker作为运行时组件
Containerd调用链更短组件更少更稳定占用节点资源更少。 建议选择containerd。
当您遇到以下情况时请选择docker作为运行时组件
- 如需使用docker in docker。
- 如需在CCE节点使用docker build/push/save/load等命令。
- 如需调用docker API。
- 如需docker compose或docker swarm。
- [云容器引擎 CCE> 最佳实践> 微服务治理> SpringCloud微服务Isito迁移指导](https://support.huaweicloud.com/bestpractice-cce/istio_bestpractice_3012.html)
- [云容器引擎 CCE> 最佳实践> 云原生化改造迁移> 企业管理应用容器化改造ERP](https://support.huaweicloud.com/bestpractice-cce/cce_bestpractice_0001.html)
## [config yaml file](config_k8s.md)
## ingress
- [ingress & ingress control](https://www.cnblogs.com/linuxk/p/9706720.html)
- [ingress & ingress control](https://blog.csdn.net/weixin_42595012/article/details/100692084)
- [ingress 学习和实践](https://mp.weixin.qq.com/s/ZxyNCP32BQjQo5ygztJttQ)
## [kubectl](kubectl.md)
## rancher
## 日志采集
日志作为任一系统不可或缺的部分在K8S的官方文档中也介绍了多种的日志采集形。
总结起来主要有下述3种原生方式、DaemonSet方式和Sidecar方式。
- 原生方式:使用 kubectl logs直接在查看本地保留的日志或者通过docker engine的log driver把日志重定向到文件、syslog、fluentd等系统中。
- DaemonSet方式在K8S的每个node上部署日志agent由agent采集所有容器的日志到服务端。
- Sidecar方式一个POD中运行一个sidecar的日志agent容器用于采集该POD主容器产生的日志。
优缺点:
- 原生方式相对功能太弱,一般不建议在生产系统中使用,否则问题调查、数据统计等工作很难完成;
- DaemonSet方式在每个节点只允许一个日志agent相对资源占用要小很多但扩展性、租户隔离性受限比较适用于功能单一或业务不是很多的集群
- Sidecar方式为每个POD单独部署日志agent相对资源占用较多但灵活性以及多租户隔离性较强建议大型的K8S集群或作为PAAS平台为多个业务方服务的集群使用该方式。
## HA
master 挂了怎么办?
[搭建高可用的 Kubernetes Masters](https://kubernetes.io/zh/docs/tasks/administer-cluster/highly-available-master/)
## Some Questions
- OOMKilled
## 存储
## 有状态应用实践
- [分布式系统中的“无状态”和“有状态”详解](https://blog.csdn.net/universsky2015/article/details/105677992)
- 深入理解statefuleset 有状态应用实践, 《深入剖析kubernetes》p133
- [在Kubernetes上运行有状态应用从StatefulSet到Operator](https://www.cnblogs.com/sammyliu/p/11976202.html)
## References
- [demo](https://github.com/ewolff)
- [基于Kubernetes微服务Istio案例源码](https://www.jdon.com/51498)
- [Istio是啥一文带你彻底了解](https://www.sohu.com/a/270131876_463994)
- [k8s的持久化存储PV&&PVC](https://www.cnblogs.com/benjamin77/p/9944268.html)
- [K8S容器编排之Headless浅谈](https://www.jianshu.com/p/a6d8b28c88a2)
- [确定k8s的Annotation与Labels你用对了](https://cloud.tencent.com/developer/article/1833485)