Top Related Projects
Quick Overview
Kube-ladder is a comprehensive learning roadmap for Kubernetes, designed to guide users from beginner to advanced levels. It provides a structured approach to mastering Kubernetes concepts, tools, and best practices, with curated resources and hands-on exercises.
Pros
- Well-organized learning path with clear progression from basic to advanced topics
- Includes practical exercises and real-world scenarios to reinforce learning
- Regularly updated to reflect the latest Kubernetes developments and best practices
- Offers both Chinese and English versions, making it accessible to a wider audience
Cons
- May be overwhelming for absolute beginners due to the breadth of content
- Some external resources linked in the guide may become outdated over time
- Lacks interactive elements or quizzes to test knowledge retention
- Primarily focuses on Kubernetes, with limited coverage of related cloud-native technologies
Getting Started
To begin your Kubernetes learning journey with kube-ladder:
- Visit the kube-ladder GitHub repository
- Choose your preferred language (Chinese or English) and navigate to the corresponding directory
- Start with the README file, which provides an overview of the learning path
- Follow the roadmap, beginning with the "Beginner" section and progressing through each level
- Complete the hands-on exercises and explore the recommended resources for each topic
- Contribute to the project by submitting issues or pull requests if you find areas for improvement
Competitor Comparisons
Production-Grade Container Scheduling and Management
Pros of kubernetes
- Official Kubernetes project with extensive documentation and community support
- Comprehensive codebase covering all aspects of Kubernetes functionality
- Regularly updated with new features and improvements
Cons of kubernetes
- Large and complex codebase, potentially overwhelming for beginners
- Steeper learning curve for those new to container orchestration
- Requires significant resources to run and test locally
Code comparison
kube-ladder (learning resource):
# Kubernetes 进阶训练营
本训练营由浅入深地介绍 Kubernetes 的各种概念以及使用方法,旨在帮助大家从零开始学习 Kubernetes。
kubernetes (actual implementation):
package main
import (
"k8s.io/component-base/cli"
"k8s.io/kubernetes/cmd/kube-scheduler/app"
)
func main() {
command := app.NewSchedulerCommand()
code := cli.Run(command)
os.Exit(code)
}
Summary
While kube-ladder is a learning resource designed to help beginners understand Kubernetes concepts, kubernetes is the actual implementation of the container orchestration platform. kube-ladder provides a structured learning path, while kubernetes offers the complete, production-ready codebase. The choice between them depends on whether you're looking to learn about Kubernetes or directly work with its source code.
Run Kubernetes locally
Pros of minikube
- Provides a local Kubernetes environment for development and testing
- Supports multiple hypervisors and container runtimes
- Offers a user-friendly CLI for managing clusters
Cons of minikube
- Limited to single-node clusters, not suitable for production-like environments
- Can be resource-intensive on local machines
- May not fully replicate all features of a production Kubernetes cluster
Code comparison
minikube:
minikube start
minikube dashboard
minikube service my-service
kube-ladder:
# No direct code comparison available
# kube-ladder is a learning resource, not a tool
Key differences
minikube is a tool for running local Kubernetes clusters, while kube-ladder is a learning resource for Kubernetes. minikube provides hands-on experience with Kubernetes, whereas kube-ladder offers a structured learning path.
minikube focuses on practical implementation, allowing users to deploy and test applications in a local environment. kube-ladder, on the other hand, emphasizes theoretical knowledge and best practices for Kubernetes adoption.
While minikube is ideal for developers working on Kubernetes-based applications, kube-ladder is better suited for individuals or teams looking to build a comprehensive understanding of Kubernetes concepts and architecture.
Kubernetes IN Docker - local clusters for testing Kubernetes
Pros of kind
- Official Kubernetes SIG project with active community support
- Designed specifically for local Kubernetes development and testing
- Supports multi-node clusters and custom configurations
Cons of kind
- Focused solely on Kubernetes cluster creation and management
- May require additional tools for comprehensive Kubernetes learning
- Limited guidance on Kubernetes concepts and best practices
Code comparison
kind:
kind: Cluster
apiVersion: kind.x-k8s.io/v1alpha4
nodes:
- role: control-plane
- role: worker
kube-ladder:
## Kubernetes Components
- etcd
- API Server
- Controller Manager
- Scheduler
- kubelet
Key differences
kube-ladder is a comprehensive Kubernetes learning roadmap, offering structured guidance on concepts, components, and best practices. It provides a step-by-step approach to mastering Kubernetes, suitable for beginners and intermediate users.
kind, on the other hand, is a tool for creating and managing local Kubernetes clusters using Docker containers. It's ideal for developers who need a quick and easy way to set up a Kubernetes environment for testing and development purposes.
While kind excels at providing a practical, hands-on Kubernetes experience, kube-ladder offers a more theoretical and comprehensive learning path. Developers might benefit from using both resources: kube-ladder for understanding Kubernetes concepts and kind for practical implementation and testing.
Lightweight Kubernetes
Pros of k3s
- Lightweight Kubernetes distribution, ideal for edge computing and IoT devices
- Easy installation and minimal resource requirements
- Includes built-in storage and load balancing solutions
Cons of k3s
- Limited to specific use cases, not suitable for large-scale production environments
- May lack some advanced features found in full Kubernetes distributions
- Smaller community and ecosystem compared to standard Kubernetes
Code Comparison
k3s:
apiVersion: helm.cattle.io/v1
kind: HelmChart
metadata:
name: traefik
namespace: kube-system
spec:
chart: traefik
repo: https://helm.traefik.io/traefik
kube-ladder:
apiVersion: apps/v1
kind: Deployment
metadata:
name: nginx-deployment
spec:
replicas: 3
selector:
matchLabels:
app: nginx
Summary
k3s is a lightweight Kubernetes distribution focused on simplicity and ease of use, particularly for edge computing and IoT scenarios. It offers quick setup and minimal resource requirements but may lack some advanced features of full Kubernetes distributions. kube-ladder, on the other hand, is a learning roadmap for Kubernetes, providing a structured approach to understanding and mastering Kubernetes concepts and technologies. While k3s is a practical implementation, kube-ladder serves as an educational resource for those looking to deepen their Kubernetes knowledge.
Conformance test suite for OpenShift
Pros of Origin
- More comprehensive enterprise-ready Kubernetes distribution
- Larger community and corporate backing from Red Hat
- Extensive documentation and enterprise support options
Cons of Origin
- Steeper learning curve due to additional features and complexity
- Heavier resource requirements for deployment and operation
- More opinionated architecture, potentially less flexible for custom setups
Code Comparison
kube-ladder:
apiVersion: v1
kind: Pod
metadata:
name: nginx
spec:
containers:
- name: nginx
image: nginx:1.14.2
Origin:
apiVersion: apps.openshift.io/v1
kind: DeploymentConfig
metadata:
name: nginx
spec:
replicas: 1
template:
metadata:
labels:
app: nginx
spec:
containers:
- name: nginx
image: nginx:1.14.2
Summary
kube-ladder is a learning-focused project aimed at helping developers understand Kubernetes concepts step-by-step. It provides a structured learning path but lacks the enterprise features of Origin.
Origin, on the other hand, is a full-fledged Kubernetes distribution with additional features for enterprise use. It offers more robust capabilities but requires more resources and has a steeper learning curve.
The code comparison shows that Origin uses OpenShift-specific resources like DeploymentConfig, while kube-ladder sticks to standard Kubernetes objects, reflecting their different focuses on enterprise features versus learning basics.
The Kubernetes Package Manager
Pros of Helm
- Widely adopted package manager for Kubernetes with extensive community support
- Provides templating and versioning for Kubernetes manifests
- Offers a large repository of pre-configured charts for various applications
Cons of Helm
- Steeper learning curve for beginners compared to Kube-ladder's educational focus
- More complex setup and configuration required for advanced use cases
- May introduce additional complexity for simple deployments
Code Comparison
Kube-ladder (educational example):
apiVersion: apps/v1
kind: Deployment
metadata:
name: nginx-deployment
spec:
replicas: 3
selector:
matchLabels:
app: nginx
Helm (chart template example):
apiVersion: apps/v1
kind: Deployment
metadata:
name: {{ include "mychart.fullname" . }}
spec:
replicas: {{ .Values.replicaCount }}
selector:
matchLabels:
{{- include "mychart.selectorLabels" . | nindent 6 }}
Kube-ladder focuses on teaching Kubernetes concepts with straightforward examples, while Helm introduces templating and value substitution for more flexible and reusable configurations. Kube-ladder is better suited for learning Kubernetes basics, whereas Helm is a powerful tool for managing complex Kubernetes applications in production environments.
Convert designs to code with AI
Introducing Visual Copilot: A new AI model to turn Figma designs to high quality code using your components.
Try Visual CopilotREADME
Table of Contents generated with DocToc
- Kubernetes å¦ä¹ è·¯å¾
- èæ¯
- å¦ä¹ è·¯å¾
- 第ä¸é¶æ®µ ç¼æ°æï¼2-4 å¨ï¼æ¯å¨ 3-5 å°æ¶ï¼
- 第äºé¶æ®µ çåºæï¼4-6 å¨ï¼æ¯å¨ 8-10 å°æ¶ï¼
- 第ä¸é¶æ®µ é丹æï¼2-4 å¨ï¼æ¯å¨ 3-5 å°æ¶ï¼
- 第åé¶æ®µ å å©´æï¼4-6 å¨ï¼æ¯å¨ 8-10 å°æ¶ï¼
- 第äºé¶æ®µ åç¥æï¼3-5 å¨ï¼æ¯å¨ 6-8 å°æ¶ï¼
- 第å é¶æ®µ ç»èæï¼4-6 å¨ï¼æ¯å¨ 8-10 å°æ¶ï¼
- 第ä¸é¶æ®µ 大ä¹æï¼ç»èº«å¦ä¹ ï¼
- 许å¯åè®®
Kubernetes å¦ä¹ è·¯å¾
èæ¯
æ¬æç± æäºç§æï¼Caicloudï¼ äº 2019 å¹´å é¨æ¨åºï¼ç°ä»¥å¼æºçå½¢å¼è¿è¡ç»´æ¤
ç®åäºè®¡ç®è¡ä¸å¯¹äº Kubernetes å¦ä¹ çéæ±æ¥çå¢å ï¼ä½å¸é¢ä¸å ³äº Kubernetes çèµæºè¯è ä¸é½ï¼åå¨å 个é®é¢ï¼
- å®æ¹æ档缺å°æç¡®ç"梯度"ï¼ä¿¡æ¯é综å¤æ
- èµæè¾ä¸ºåæ£ï¼æ¥æ¾ä¿¡æ¯è´¹æ¶è´¹å
- Kubernetes åå±å¾å¿«ï¼ä¹¦ç±æè ç½ä¸æç¨å®¹æè¿æ¶
æ¬ææ¡£æ¨å¨ä¸ºå¹¿å¤§ä»ä¸è æä¾ä¸ä¸ª Kubernetes å¦ä¹ è·¯å¾ï¼ä¸ºå¤§å®¶æä¾ä¸å®çæå¼ãæ们æç»çç®æ æ¯è®©ææ人å¥è§æ½ä¸è¬å°äºè§£ Kubernetesï¼ä¸ä» ä» ç¥éæä¹ç¨ Kubernetesï¼è¿ç¥é Kubernetes å个åè½æ¯å¦ä½è®¾è®¡çãå¨å¦ä¹ è·¯å¾åæï¼æ们è¿å¯ä»¥å¾"èªç¶"çèæ³å°æ£ç¡®ç设计æè·¯ã
å¦ä¹ è·¯å¾
注æï¼
- æ¯è¯æ¥èªæäºç§æå·¥ç¨å¸ gaocegege æèãéåç³»ç»å·¥ç¨å¸ç"æºå¨å¦ä¹ "å¦ä¹ è·¯å¾ã
- 注æè¿æ¯å¦ä¹ è·¯å¾ï¼ä¸æ¯ä¸ä¸ªæç¨ï¼
- 大å¤æ°æ¦å¿µé½ä¼ç»åºå®æ¹é¾æ¥ï¼å¦æéè¦æ·±å ¥äºè§£è¯·èªè¡æ¥æ¾ï¼
第ä¸é¶æ®µ ç¼æ°æï¼2-4 å¨ï¼æ¯å¨ 3-5 å°æ¶ï¼
ç®æ
- Kubernetes çèæ¯
- å®è£ Kubernetes ç¯å¢
- Kubernetes åºæ¬æ¦å¿µå使ç¨æ¹æ³
è·¯å¾
å¦ä¹ ä»»ä½ç³»ç»çä¹åï¼äºè§£å ¶åºç°çèæ¯åæä¹é½æ¯å¿ ä¸å¯å°çï¼ä¸ºä»ä¹ä¼åºç° Kubernetesï¼å®è§£å³äºä»ä¹é®é¢ï¼æ没æå ¶ä»ç±»ä¼¼çç³»ç»ï¼è¿éæ¨èé 读æäºç§æ CEO å¼ é«å¨ 2017 å¹´æç« ãä»é£å£æµªå°å°ååè·¯å£ï¼åå¨ Kubernetes 两å¨å¹´ä¹é ãã
æ¥ä¸æ¥ï¼å¨äºè§£ Kubernetes ç³»ç»æ¬è´¨ä¹åï¼æ们éè¦å¯¹ Kubernetes æä¸ä¸ªè¾ä¸º"ææ§"ç认è¯ï¼ææ¶å¯¹ Kubernetes ççé¾æ 绪ãè¿éï¼æ们æ¨èä½¿ç¨ minikube æ kind é¨ç½²ä¸ä¸ªæ¬å°ç¯å¢ï¼ç¶åå¼å§é¨ç½²ä¸ä¸ª"çå®"çåºç¨ï¼minikube å®è£ éè¦ä½¿ç¨ç§å¦ä¸ç½ï¼æ使ç¨âå½å çâ minikubeï¼ãå¦ææ³ä¸å¼å§å°±æææ´é«é¾åº¦çå®è£ æ¹å¼ï¼ä¸æ¨èï¼ï¼å¯ä»¥ä½¿ç¨ kubeadm æè æå¨é¨ç½²ææç»ä»¶ãå ³äºå®è£ ï¼å¯ä»¥åèææ¡£ lab1-installationã
å¨å®è£ 好ç¯å¢ä¹åï¼å¯ä»¥å¼å§å¨æå®è·µæåºæ¬ç Kubernetes æ¦å¿µãå¨ç¬¬ä¸é¶æ®µï¼æ们æ¨èçç»ä½¿ç¨ä»¥ä¸å¸¸ç¨èµæºåæ¦å¿µï¼PodãNodeãLabelãEventãServiceãConfigmap & SecretãDeploymentãNamespaceãç¸å ³å¦ä¹ å¯ä»¥åèææ¡£ lab2-application-and-serviceã
ï¼å¯éï¼ä» å®æä¸è¿°å 容å¯è½è¿ä¸è¶³ä»¥è®©æ们é常çæ Kubernetes çåºæ¬æ¦å¿µï¼ä¸é¢ååºå ¶ä»å¯ä»¥åèçèµæï¼å¤§å®¶ä¹å¯ä»¥æç §èªå·±çæ¹å¼å»æç´¢ç¸å ³çèµæï¼
- å®æ¹ Tutorialï¼Learn Kubernetes Basics
- å®æ¹ Guestbook æ ·ä¾ï¼Guestbook Example
- Kubernetes Tutorial for Beginners
å¿æ³
ð¤¨
- 请åå¤å 深对ä¸é¢èµæºçæä½çç»åº¦ãå¦æä½ æ¯ç¬¬ä¸æ¬¡æ¥è§¦ Kubernetesï¼æè ä» äºè§£è¿ä¸ç¹ Kubernetes çç¥è¯ï¼é£ä¹åºï¼kenï¼æ¬ï¼dingï¼æ¯ä¸æç½ Kubernetes åºå±å°åºåçäºä»ä¹ã请ä¸è¦å¿æ¥ï¼å§ä¸æå®å½æä¸ä¸ªé»çå·¥å ·å³å¯ ð ã
- ä½ å¯è½ä¼å¨ç½ä¸çå°æ´å¤çæ¦å¿µï¼å¦ PVCãIngressãPriority çãç¼æ°é¶æ®µï¼è¯·ä¸è¦å°è¯å¦ä¹ è¿å¤çèµæºç±»åãKubernetes æé常å¤çæ¦å¿µå类似çèµæºï¼æ们è¿éçæææ ¸å¿çæ¦å¿µå³å¯ï¼å¦åæèµ°ç«å ¥é ð»ï¼åè®°ãå½æ们æéä»»ç£äºèä¹æ¶ï¼ææçæ°æ¦å¿µé½ä¸è¿å°å°ã
第äºé¶æ®µ çåºæï¼4-6 å¨ï¼æ¯å¨ 8-10 å°æ¶ï¼
ç®æ
- Kubernetes çåºæ¬æ¶æ
- Kubernetes 容å¨è°åº¦çåºæ¬æµç¨
è·¯å¾
çææ¥è§¦ Kubernetes æ¦å¿µä¹åï¼æ们éè¦ç¥å ¶ç¶å¹¶ä¸ç¥å ¶æ以ç¶ï¼å æ¤å¨ç¬¬äºé¶æ®µæ们å¼å§å¦ä¹ Kubernetes åºæ¬æ¶æãå¦ä¹ Kubernetes åºæ¬æ¶æè³å°éè¦äºè§£ä»¥ä¸å 容ï¼
- Master & Node
- ç¥éä»ä¹æ¯ Kubernetes Masterï¼ä»ä¹æ¯ Node
- ç¥é两è çå ³ç³»ï¼ç¥éå®ä»¬æ¯å¦ä½éä¿¡ç
- Master ç»ä»¶
- API ServerãKubernetes å¦ä½æ¥æ¶è¯·æ±ï¼åæ¯å¦ä½å°ç»æè¿åè³å®¢æ·ç«¯ã
- Etcdãäºè§£ Etcd 主è¦åè½æºå¶ã
- Controller ManagerãKubernetes æ§å¶å¨æ¯å ¶æ¶æä¸æä¸ºæ ¸å¿çä¸ç¯ï¼æ们éè¦äºè§£æ§å¶å¨çåçï¼List-Watch çåºæ¬åçï¼ç¥é Kubernetes é»è®¤æ åµä¸å¤§è´å å«åªäºç±»åçæ§å¶å¨ã
- Schedulerãçæ Kubernetes çè°åº¦æµç¨æ¯ææ ·çï¼è°åº¦å¨å¨æ´ä¸ªè°åº¦æµç¨ä¸çè§è²ã
- Node ç»ä»¶
- Kubeletãç¥é Kubelet æ¯å¦ä½æ¥åè°åº¦è¯·æ±å¹¶å¯å¨å®¹å¨çã
- Kube-proxyãäºè§£ Kube-proxy çä½ç¨ï¼æä¾çè½åæ¯ä»ä¹ã
- Container Runtimeãäºè§£é½æåªäº Container Runtimeï¼ä¸»è¦äºè§£ Docker ä¸äºåºæ¬æä½ä¸å®ç°åçã
- æ ¸å¿ Addons & Plugins
é¦å å¯ä»¥é 读书ç±æç½ä¸å客ï¼æ¨èé 读ï¼
- å®æ¹ææ¡£ï¼Kubernetes Components
- feisky çå客ï¼Kubernetes æåä¹æ ¸å¿åç
- kubectl run çèåæµç¨ï¼é¾ï¼ï¼What happens when I type kubectl run?
- kubectl run çèåæµç¨ä¸æçï¼kubectl å建 Pod èåå°åºåçäºä»ä¹ï¼
æ¥ä¸æ¥ï¼æ¨èä» 0 å¼å§é¨ç½²ä¸ä¸ª Kubernetes é群ï¼ä¸ä½¿ç¨ä»»ä½å·¥å ·ï¼ï¼æ¥å 深对å个ç»ä»¶çç解ï¼è§£å³é¨ç½²ä¸åºç°çåç§é®é¢ï¼æ¥çç»ä»¶å¯å¨æ¥å¿ççãå¦ææ¶é´æéï¼ä¹å¯ä»¥å°è¯ä½¿ç¨ kubeadm çå·¥å ·æ¥é¨ç½²é群ãç®å Kubernetes é群é¨ç½²èªå¨åå·²ç»åå¾æ¯è¾å®åï¼ä½åºäºå¦ä¹ ç®çï¼å次å¢è£æ¨èæå¨å®è£ ãå ³äºæå¨å®è£ é群ï¼å¯ä»¥åèææ¡£ lab3-manual-installtionã
å¨æ¬é¶æ®µä¿®ç¼ç»æåï¼æ们è³å°åºè¯¥å¯¹ä»¥ä¸é®é¢äºå¦ææï¼Kubernetes ç»ä»¶æ¯å¦ä½äº¤äºï¼æ¥å¯å¨å®¹å¨ï¼å¹¶å¯¹å¤æä¾æå¡çï¼
å¿æ³
ðª
- 请ä¸è¦æ»è®°ç¡¬è Kubernetes æ¶æï¼è¦å¼å¨å¤§è ð§ å»çè§£å ¶èå设计çåå ã
- çåºææ¯æ¯è¾å°é¾çä¸ä¸ªé¶æ®µï¼å¦ææè§ä¸å¤´é¾æ°´ï¼è¯·ä¸è¦æ°é¦ï¼ä½ ä¸æ¯ä¸ä¸ªäººãå½ä½ æè§è¿å ¥äºç¶é¢æ¶ï¼å¯ä»¥å°è¯å¯»æ¾èº«è¾¹çæåï¼æ»ç»ä¸äºä½ çé®é¢å¹¶å¯»æ±çæ¡ ð»ã
第ä¸é¶æ®µ é丹æï¼2-4 å¨ï¼æ¯å¨ 3-5 å°æ¶ï¼
ç®æ
- Kubernetes API ç»æ
- çæ Kubernetes å个åç³»ç»
- çæ Kubernetes æéç¸å ³å 容
è·¯å¾
å½æ们å¯ä»¥çç»ä½¿ç¨ Kubernetes çåºæ¬èµæºï¼å¹¶ä¸å¯¹ Kubernetes çåºæ¬æ¶ææäºå 足äºè®¤è¯ï¼æ¥ä¸æ¥éè¦å¯¹ Kubernetes ç API ç»æååç³»ç»è¦æä¸ä¸ªæ¯è¾å ¨é¢ç认è¯ï¼åæ¶ä¹è¦å¼å§æ´å ç³»ç»çäºè§£ææ¥é®é¢ç¸å ³çå 容ã
è¦ç¥é Kubernetes API æ¯å ¶æå¼ä»¥ä¸ºå²ç设计ï¼ææ¡ API çå ³é®æ¯éè¦äºè§£ï¼
- Kubernetes ç API æ¯å¦ä½æ§å¶çæ¬ç
- Kubernetes ç API æ¯å¦ä½åç»ç
- Kubernetes 对象ç表示æ¹æ³ä¸è®¾è®¡ç念
- Kubernetes API ç访é®æ§å¶
æ们å¯ä»¥éè¿æµè§ Kubernetes API 代ç ä»åºæ¥äºè§£ Kubernetes API ç»ï¼Groupï¼çä¿¡æ¯ãææçèµæºå®ä¹ä»£ç é½éµå¾ª <group>/<version>/types.go
çè§èï¼ä¾å¦ä¸è¿° Deployment èµæºæ¯å®ä¹å¨ apps group ä¸ãæ们å¯ä»¥å¨ apps/v1/types.go ä¸æ¥æ¾å°å
³äº Deployment çå®ä¹ã
æ¥ä¸æ¥ï¼æ们å¯ä»¥éè¿æµè§ Kubernetes/Community 代ç ä»åºæ¥äºè§£åä¸ªå ´è¶£å°ç»ï¼SIGï¼ï¼"SIG" æ¯ Special Interest Group çç®ç§°ãKubernetes çæ¼è¿é½æ¯éè¿ SIG æ¥æ¨å¨çï¼å æ¤äºè§£ SIG çå工对æ们ç解 Kubernetes é常éè¦ãä¸è¬æ¥è®²ï¼ä¸ä¸ª SIG 对åºçä¸ä¸ª Kubernetes åç³»ç»ï¼ä¾å¦ï¼sig-apps è´è´£å³å®æ¯å¦å¼å ¥æ°ç APIï¼æè ç°æ API æ¯å¦éè¦å级ççãæ们éè¿æ¥ç Community ä¸å¸¦æ "sig-" åç¼çç®å½æ¥äºè§£ SIG çå·¥ä½å 容ãä¼è®®çºªè¦ççãè¿éç®åå举 Kubernetes éè¦çåç³»ç»ï¼
- æ¶æ Architecture
- åºç¨ Apps
- åå¨ Storage
- ç½ç» Network
- æé Auth
- èç¹ Node
- è°åº¦ Scheduling
- å½ä»¤è¡ CLI
- å¤é群 MultiCluster
- äºå¹³å° CloudProvider
- æ©å±æ§ Scalability
- å¼¹æ§ä¼¸ç¼© Autoscaling
- çæ§æ¥å¿ Instrumentation
ï¼å¯éï¼ç»å¿çä½ å¯è½ä¼åç°ä»¥ "wg-" å¼å¤´çç®å½ï¼ä¾å¦ "wg-resource-management"ã"wg" æ¯ working group çç®ç§°ï¼æ¯é对éè¦æ¶åå¤ä¸ª SIG ä¹é´åä½èå±å¼çä¸ç§å·¥ä½ç»ï¼ç¬ç«äºä»»ä½ SIG ãä¾å¦ resource management ä¼æ¶åå° NodeãStorageãScheduling ç SIGsã
ä½ä¸ºä¸ä¸ªæ¿ä¸å¯ä¸çé¶æ®µï¼æ们éè¦æ»ç»ä¸äº Kubernetes æéçè½åï¼æ¨èé 读ï¼
- å®æ¹ææ¡£ï¼Kubernetes Troubleshooting
- feisky çå客ï¼Kubernetes é群æéæå
å¿æ³
ð±
- æ¬é¶æ®µçéç¹æ¯"è³å¬å è·¯ :see_no_evil: ç¼è§å «æ¹ :hear_no_evil:"ãå两个é¶æ®µæ¥è§¦å°äºå¾å¤ Kubernetes çç»èï¼æ¬é¶æ®µéè¦å¯¹ Kubernetes çå ¨è²æ个æ´å æ¸ æ°ç认è¯ãå¾å¤å 容å¯è½çä¸å¤ªæï¼ä½è¯·å¨ä½ çå¿ä¸åä¸ä¸é¢ç§åã
第åé¶æ®µ å å©´æï¼4-6 å¨ï¼æ¯å¨ 8-10 å°æ¶ï¼
ç®æ
- å 深对å个èµæºçç解
- å¦ä¹ æ´å¤ Kubernetes æ¦å¿µåç¥è¯
è·¯å¾
ä¸åºæå¤ï¼ä½ ç°å¨å¯¹ Kubernetes åºæ¬çèµæºå·²ç»å¾çç»äºï¼å¯¹ Kubernetes å é¨ç»ä»¶åå®ä»¬ç交äºæ¯è¾æ¸ æ°ï¼è¿å¯¹ Kubernetes ç API å ¨è²åç»ç»ç»æä¹æä¸å®çäºè§£ãå¦æåºäºæå¤ ð¤ï¼è¯·éæ°åé¡¾ä½ çå¦ä¹ è¿ç¨ã
æ¬é¶æ®µï¼æ们å´ç»å ä¸ªå ³é®æ¹åæ¥å¦ä¹ Kubernetesï¼å æ·±å¯¹å ¶å个ææ¯ç¹ç认è¯ï¼è¿éåªååºæ¬é¶æ®µéè¦å¦ä¹ çæ ¸å¿è½åï¼å ¶ä»åè½è¯·éåèå¦ï¼ï¼
-
计ç®
- Pod Lifecycle & Healthcheck & RestartPolicy
- Pod Init-Container
- Horizontal Pod Autoscaler (HPA)
- æ´å¤æ§å¶å¨ï¼JobãCronJobãDaemonsetãStatefulSetãReplicaSet
-
ç½ç»
-
åå¨
- Volume 以ååºå±åå¨ç±»å
- PV/PVCãStorageClass
-
å®å ¨
-
è°åº¦
æ»ç»ä¸ä¸ï¼1ï¼æ¬é¶æ®µæ们æ¥è§¦å°æ´å¤çèµæºï¼å æ¬ï¼HPAãJobãCronJobãDaemonSetãStatefulSetãIngressãVolumeãPV/PVCãStorageClassãNetworkPolicyãPSPã2ï¼æ´å æ·±å ¥äºè§£å·²å¦èµæºç使ç¨ï¼ä¾å¦ Init-ContainerãSecurityContextãAffinity çãè¿äºè½åæç»é½ä¼ä½ç°å¨å个èµæºç API ä¸ï¼ä¾å¦ Affinity æ¯ Pod API ç»æçä¸ä¸ªå段ï¼Scheduler éè¿è§£æè¿ä¸ªå段æ¥è¿è¡åççè°åº¦ãæªæ¥å¦æææ´å¤çè½åï¼æ们é½å¯ä»¥éè¿è§£è¯»ä¸åèµæºç API å段æ¥ä¸æ¢ç©¶ç«ã
æ¬é¶æ®µç¸å ³å¦ä¹ å¯ä»¥åèææ¡£ lab4ã
å¿æ³
ð§ââï¸ð§ââï¸
- æ¬é¶æ®µé¾åº¦ææ°é«ï¼è¯·åçè°æ´ä½ çå¿å¢ãæ¸¡å« :volcano: æååï¼ä½ 对 Kubernetes çææ¡å°ä¼è¿å ¥ä¸ä¸ªæ°çå°ï¼tianï¼é¶ï¼kengï¼ã
- å¦ä¹ ç¸å ³åè½æ¶ï¼å¯ä»¥åé¡¾å ¶æå¨ SIGï¼ççè½ä¸è½åç°æç¨çèµæºã
第äºé¶æ®µ åç¥æï¼3-5 å¨ï¼æ¯å¨ 6-8 å°æ¶ï¼
ç®æ
- å¦ä¹ æ´å¤ Kubernetes é群å±é¢çåè½
- æ´å æ·±å ¥å¦ä¹ Kubernetes æ¶æåç»ä»¶è½å
è·¯å¾
å½æ们äºè§£äº Kubernetes API ç设计ç念ï¼å¦ä¹ å°äºè¶³å¤å¤ç API èµæºåå ¶ä½¿ç¨æ¹æ³ä¹åï¼è®©æ们åå顾ä¸ä¸ Kubernetes Master & Node æ¶æï¼ä»¥åå®ä»¬è¿è¡çç»ä»¶ãäºå®ä¸ï¼Kubernetes çæ¯ä¸ªç»ä»¶é½æå¾å¼ºçå¯é ç½®æ§åè½åï¼æ们å¯ä»¥å´ç» Kubernetes çæ¯ä¸ªç»ä»¶ï¼æ¥å¦ä¹ Kubernetes è¾ä¸ºâéæ¦âçåè½ã
æ¨èéè¿ Kubernetes Command Line Reference æ¥äºè§£è¿äºç»ä»¶çé ç½®ï¼
åæ¶ï¼Kubernetes æä¾äº FeatureGate æ¥æ§å¶ä¸åçç¹æ§å¼å ³ï¼æ们å¯ä»¥éè¿ FeatureGate æ¥äºè§£ Kubernetes çæ°ç¹æ§ãæ¤å¤ï¼ä¸ºäºæ¹ä¾¿å¼åè åé 置管çï¼Kubernetes æææé ç½®é½æªå°äºç¸å¯¹åºç GitHub 代ç ä»åºä¸ï¼å³ï¼
- https://github.com/kubernetes/kube-scheduler
- https://github.com/kubernetes/kube-controller-manager
- https://github.com/kubernetes/kube-proxy
- https://github.com/kubernetes/kubelet
- https://github.com/kubernetes/kubectl
å½ç¶ï¼ç´æ¥è£¸çé ç½®æç¹ç¡¬æ ¸ã为æ¹ä¾¿å ¥æï¼ä¸é¢æ们ç®åæ»ç»é¨ååè½ï¼ç¬¼ç»çå为 Master å Nodeï¼ï¼
Master
- Dynamic Admission Control
- å¨æåå ¥æ§å¶ï¼å¨ç»èæé¶æ®µéè¦æ´å æ·±å ¥çäºè§£ï¼
- å¯¹åº API Server
--admission-control-config-file
åæ°
- Advanced Auditing
- æä¾å¯å¨æé ç½®ç审计åè½
- å¯¹åº API Server 带æ
--audit-
åç¼çåæ°
- Etcd Configuration
- æä¾åç§ä¸ Etcd ç¸å ³çé ç½®ï¼ä¾å¦ Kubernetes event TTL
- å¯¹åº API Server 带æ
--etcd-
åç¼çåæ°
- All Admission Controllers
- å举ææ Kubernetes ææ¯æç Admission Controllersï¼æ¯ä¸ª Admission é½ä¸ Kubernetes ç¹å®çåè½ç¸å ³è
- å¯¹åº API Server
--enable-admission-plugins
åæ°ï¼è¯¥åæ°æ³¨éå举äºææçé»è®¤ Admission Controllers
- Garbage Collection
- å¯ç¨åï¼Kubernetes ä¼èªå¨æ ¹æ®
OwnerReferences
æ¥åæ¶ API èµæº - å¯¹åº Controller-Manager
--enable-garbage-collector
åæ°
- å¯ç¨åï¼Kubernetes ä¼èªå¨æ ¹æ®
- Concurrent Sync Limiting
- é¿å è¿å¤çèµæºåæ¥å¯¼è´é群èµæºçæ¶è
- å¯¹åº Controller-Manager 带æ
--concurrent
åç¼çåæ°
- All Controllers
- å举ææ Kubernetes ææ¯æç Controllersï¼æ¯ä¸ª Controller é½ä¸ Kubernetes ç¹å®çåè½ç¸å ³è
- å¯¹åº Controller-Manager
--controllers
ï¼è¯¥åæ°æ³¨éå举äºææçé»è®¤ Controllers
å ¶å®å¼å¾æ³¨æçåæ°å æ¬ï¼
- API-Server
--max-requests-inflight
,--min-request-timeout
- API-Server
--watch-cache
,--watch-cache-sizes
- Controller-Manager
--node-eviction-rate
- Controller-Manager
--pod-eviction-timeout
- Controller-Manager
--terminated-pod-gc-threshold
- Controller-Manager
--pv-recycler-minimum-timeout-*
Node
- Kubelet Eviction
- å½èç¹èµæºä¸è¶³æ¶ï¼Kubernetes éè¿é©±é Pods çæ¹å¼ç¡®ä¿èç¹ç稳å®æ§
- å¯¹åº Kubelet 带æ
--eviction-
åç¼çåæ°ï¼ä¾å¦--eviction-hard
- Image GC
- æ¸ ç容å¨éåå ç¨çç£ç空é´
- å¯¹åº Kubelet 带æ
--image-gc-
åç¼çåæ°ï¼ä»¥å--minimum-image-ttl-duration
çåæ°
- Resource Reserve
- 为系ç»èµæºé¢çä¸å®çèµæºï¼ç¡®ä¿èç¹ç稳å®æ§
- å¯¹åº Kubelet
--kube-reserved
ã--kube-reserved-cgroup
çåæ°
- CPU Manager
- æä¾æ´å¤ç CPU 管çè½åï¼ä¾å¦éæ CPU 亲åæ§
- å¯¹åº Kubelet
--cpu-manager-*
åç¼çåæ°
- Storage Limit
- é¿å èç¹è¿åº¦æè½½æ°æ®å·
- å¯¹åº FeatureGate
AttachVolumeLimit
å ¶å®å¼å¾æ³¨æçåæ°å æ¬ï¼
- Kubelet & Kubeproxy
--hostname-override
- Kubelet
--cgroups-per-qos
- Kubelet
--fail-swap-on
- Kubelet
--host-*
- Kubelet
--max-pods
,--pods-per-core
- Kubelet
--resolv-conf
- Kubeproxy
--nodeport-addresses
å¿æ³
ð
- éè¿ç»ä»¶é ç½®å¦ä¹ Kubernetes åè½æ¯æ们éè¦å ·å¤çä¸ä¸ªå¸¸è§è½åï¼æ许æ¯è¾æ¯ç¥ï¼ä½å¯¹æ们çä¿®ç¼å¤§æ裨çã
- å¦æä½ å¯¹ Kubernetes âæ ç©·æ å°½âçåè½æå°æç¹è¿·è«ï¼è¿æ¯ä¸ä¸ªå¾æ£å¸¸çç°è±¡ãé¤éæ¯æ·±åº¦åä¸ Kubernetes çå¼åï¼å¦åä¸å®ä¼æå¾å¤éæ¼çå°æ¹ãæ们åªè¦ä¿æ两个åºæ¬ç¹ä¸å¨æï¼1. æ Kubernetes æ¶æåææ ¸å¿çè½åï¼2. æå¾æä¹å¿«éå®ä½æ们éè¦çè½åãå ³äºç¬¬äºç¹ï¼æ们å°å¨å¤§ä¹æä»ç»ï¼stay tunedï¼
第å é¶æ®µ ç»èæï¼4-6 å¨ï¼æ¯å¨ 8-10 å°æ¶ï¼
ç®æ
- 对 Kubernetes çæ©å±æºå¶äºå¦ææ
- å¯ä»¥ç¼å Kubernetes æ§å¶å¨ï¼è½å¤åºäºæ©å±æºå¶çµæ´»å°äºæ¬¡å¼å
è·¯å¾
æ¬é¶æ®µæ们å¯ä»¥å¼å§äºè§£ Kubernetes åç§æ©å±æºå¶ãå¦æ说 Kubernetes ç API åæ¶æ设计æ¯å ¶éè¦çåºç³ï¼é£ä¹æ©å±æºå¶ä½¿å¾ Kubernetes å¨å个çæé¢åå¼è±ç»æãä¸é¢æ们å°è¯å举åºææçæ©å±æ¹å¼ï¼æ¯ä¸ç§æ©å±é½æå ¶ä¼å¿åå±éæ§ï¼è¯·èªè¡æèã注æè¿éæå°çæ©å±æºå¶æçæ¯æ¶æä¸çæ©å±ï¼èéåè½å±é¢çæ©å±ï¼ä¾å¦ Pod æ¯æåç§ Probe æ¥è¿è¡å¥åº·æ£æ¥ï¼å æ¬èªå®ä¹ï¼è¿éæ们ä¸å½ä¸ºæ©å±æºå¶çè½åã
API èµæºæ©å±è½å
- Annotationï¼ä¿åå°ééç»æå第ä¸æ¹æ°æ®
- Finalizerï¼èµæºå é¤æ¶ï¼ç¨æ·è°ç¨å¤é¨ç³»ç»çé©å
- CustomResourceDefinitionï¼èªå®ä¹ Kubernetes API
- API Aggregationï¼å¤ä¸ª API Server èåï¼éç¨äºè¾å¤§éç API å®å¶
å¦ä¹ API èµæºæ©å±çä¸ä¸ªéè¦æ¹å¼æ¯å建ä¸ä¸ªæ©å±èµæºï¼æè ç¼åä¸ä¸ªèªå·±çæ§å¶å¨ã强çæ¨èèªè¡ç¼åä¸ä¸ªæ§å¶å¨ï¼è¿éååºå 个常è§çå·¥å ·ï¼
- kubebuilderï¼æ¥èª Kubernetes å®æ¹ç API æ©å±é¡¹ç®
- sample-controllerï¼æ¥èª Kubernetes å®æ¹çä¸ä¸ªæ ·ä¾
- operator-sdkï¼æ¥èªçº¢å¸½çä¸ä¸ª operator åº
- shell-operatorï¼éåè¿ç»´å¼å使ç¨ç shell operator åº
- meta-controllerï¼æ¥èª Google çä¸ä¸ªæ´å "å»ç"å¼ç¼åæ§å¶å¨çåº
API 访é®æ©å±è½å
- è®¤è¯ Webhookï¼ç¨æ·è®¤è¯æ¶ï¼è°ç¨å¤é¨æå¡ï¼ä» æ¯æéæé ç½®
- é´æ Webhookï¼ç¨æ·é´ææ¶ï¼è°ç¨å¤é¨æå¡ï¼ä» æ¯æéæé ç½®
- å¨æ访é®æ§å¶ Webhookï¼è¯·æ±è®¿é®æ§å¶æ¶ï¼è°ç¨å¤é¨æå¡ï¼æ¯æå¨æå¢å å¤é¨æå¡
Kubernetes API 访é®æ©å±ä¸»è¦æ¯éè¿ Webhook æ¥å®ç°ã注æåªæ访é®æ§å¶æ¯æå¨æå¢å å¤é¨æå¡ï¼è®¤è¯é´æçå¤é¨æå¡å¨å¯å¨ API Server çæ¶å就注åå®æ¯ï¼æ æ³å¨åç»å¢å ï¼ä¸»è¦åå æ¯å¨æå¢å å¤é¨è®¤è¯é´ææå¡ï¼å¸¦æ¥çå®å ¨é£é©è¿å¤§ã
è°åº¦å¨æ©å±è½å
- æ©å±æ¥å£ï¼Scheduler Extenderï¼ï¼ç±»ä¼¼ Webhookï¼è°ç¨å¤é¨æå¡è¿è¡è°åº¦å³ç
- å¤è°åº¦å¨ï¼æ¯æå¨ Kubernetes è¿è¡å¤ä¸ªè°åº¦å¨è°åº¦ä¸åä½ä¸
- è°åº¦å¨æ¡æ¶ï¼å®ä¹ä¸å¥ Go APIï¼ä½¿ç¨æ·æ é fork Kubernetes Scheduler 代ç å³å¯å®æâ代ç 级âçå®å¶
é对ç®ååºæ¯ï¼æ们å¯ä»¥ç´æ¥ä½¿ç¨ Scheduler Extender å³å¯ï¼ä¾å¦æ GPU åå·è°åº¦ãå¤æè°åº¦åºæ¯å¯ä»¥ä½¿ç¨å¤è°åº¦å¨æè°åº¦å¨æ¡æ¶ï¼ä¾å¦åºäºæµå¾çè°åº¦å¨ poseidonï¼æ¹å¤çè°åå¨ kube-batch çãä¸è¬èè¨ï¼ä½¿ç¨ Extender å³å¯æ»¡è¶³å¤§å¤æ°åºæ¯ã
ç½ç»æ©å±è½å
- ç½ç»æ件 CNIï¼ä½¿ç¨ CNI æ件ï¼å¯ä»¥éæ©ä»»ä½æ们éè¦çç½ç»æ¹æ¡
- èªå®ä¹ Ingress æ§å¶å¨ï¼Ingress å®ä¹äºä¸å¥ API æ¥å£ï¼æ们å¯ä»¥éæ©ä»»æå®ç°
- èªå®ä¹ NetworkPolicy æ§å¶å¨ï¼åä¸ï¼å¯éå®ç°å æ¬ CalicoãCilium ç
- èªå®ä¹ DNS æ§å¶å¨ï¼Kubernetes å®ä¹äºä¸å¥ DNS è§èï¼æ们å¯ä»¥éæ©ä»»æå®ç°
ç½ç»æ件 CNI æ¯å®¹å¨ç½ç»æ åï¼Kubernetes æä¾äºè¯å¥½çæ¯æï¼å¸¸ç¨æ件å æ¬ flannelãCalico ççãå¯¹äº IngressãNetworkPolicyãDNSï¼ç¸ä¿¡å°ç®å为æ¢å¤§å®¶åºè¯¥å¯ä»¥ç解ï¼å ¶æ¬è´¨ä¸æ¯ Kubernetes å®ä¹çä¸å¥ APIï¼åºå±å®ç°å¯ææï¼ç¨æ·å¯ä»¥æèªå·±çéæ©ã
åå¨æ©å±è½å
- FlexVolumeï¼Kubernetes æä¾çä¸ç§å¨æ对æ¥åå¨æ¹æ¡ï¼æ¯æç¨æ·èªå®ä¹åå¨å端
- åå¨æ件 CSIï¼ä½¿ç¨ CSI æ件ï¼å¯ä»¥éæ©ä»»ä½æ们éè¦çåå¨æ¹æ¡
FlexVolume æ¯ Kubernetes èªå¸¦ç对æ¥å¤é¨åå¨çæ¹æ¡ï¼ç¨æ·ç¼åå°éç代ç å³å¯å å ¥èªå®ä¹åå¨å端ï¼éç¨äºç®ååºæ¯ãåå¨æ件 CSI æ¯å®¹å¨ç½ç»æ åï¼Kubernetes æä¾äºè¯å¥½çæ¯æï¼åæ¶ä¸ºæ¹ä¾¿ç¬¬ä¸æ¹å®ç°ï¼è¿æä¾äºä¸æ´å¥ SDK 解å³æ¹æ¡ãææåºå±åå¨ç¸å ³çè½åé½ä¸ CSI å¯åç¸å ³ã
è¿è¡æ¶æ©å±è½å
- è¿è¡æ¶æ¥å£ CRIï¼ä½¿ç¨ CRI æ件ï¼å¯ä»¥éæ©ä»»ä½æ们éè¦çè¿è¡æ¶æ¹æ¡
è¿è¡æ¶æ¥å£ CRI æ¯ Kubernetes æåºï¼ä¸ºè§£å³æ¯æå¤ç§è¿è¡æ¶èæä¾çæ¹æ¡ãä»»ä½è¿è¡æ¶ï¼åªéå®ç° CRI ç¸å ³çæ¥å£ï¼å³å¯æ¥å ¥ Kubernetes ä¸ï¼å æ¬ DockerãContainerdãgVisorãKata çã
ç¹æ®ç¡¬ä»¶æèµæºæ©å±è½å
- æ©å±èµæº Extended Resourceï¼éè¿ Kubernetes åç API æ¹å¼æ¯ææ·»å èªå®ä¹èµæº
- 设å¤æ件 Device Pluginï¼ä½¿ç¨ Device Plugin æ件ï¼å¯ä»¥å¯¹æ¥ä»»ä½æ们éè¦ç硬件
对äºç®ååºæ¯ï¼ä¾å¦éææ±æ¥èµæºæ°éï¼å¯ä»¥ç´æ¥ä½¿ç¨ Extended Resource æ©å± Kubernetes ææ¯æç硬件ãDevice Plugin çæ ¸å¿æ¯èªå¨æ¥å ¥åç§ç¹æ®ç¡¬ä»¶å¦ NvidiaãInfinibandãFPGA çãå¨èµæºæ±æ¥å±é¢ Device Plugin ç®åä¹ä½¿ç¨äº Extended Resource çè½åï¼ä½ç±äº Extended Resource çå±éæ§ï¼Device Plugin æªæ¥ä¹å¯ä»¥ä¸å ¶ä» API 对æ¥ãç®å使ç¨æå¤ç Device Plugin 主è¦æ¯ Nvidia ç GPU device pluginã
çæ§æ©å±è½å
- èªå®ä¹çæ§ï¼æ¯æ使ç¨èªå®ä¹çæ§ç»ä»¶å¦ Prometheus æä¾çæ§ææ
èªå®ä¹çæ§å æ¬ Custom Metrics å External Metricsï¼ä¾å¦ Prometheus adaptorã
äºä¾åºåæ©å±è½å
- äºæ§å¶å¨ Cloud Controller Managerï¼æ¯æå¯ææäºæå¡æä¾å
äºæ©å±è½åçç®æ æ¯ä½¿å个äºä¾åºåå¯ä»¥å¨ä¸æ¹å Kubernetes æºç çæ åµä¸ï¼æ¥å ¥å ¶æå¡ãæ¯ä¸ªäºä¾åºåé½æç¬ç«ç项ç®ã
å½ä»¤è¡æ件
- Kubectl Pluginï¼kubectl plugin æ¯ææ©å± kubectl åå½ä»¤ï¼ä¸ API æ©å±è½åç»åå¯ä»¥æä¾è¿ä¹åçç使ç¨æ¹æ³ã
å¿æ³
:godmode:
- æ¨èå®ç°ä¸ä¸ªç«¯å°ç«¯ç Kubernetes æ§å¶å¨ï¼å¯ä»¥å¯¹æ´ä¸ª Kubernetes çäºæ¬¡å¼åææ´å æ·±å ¥çäºè§£ãæ¤å¤ï¼é对ææçæ©å±è½åï¼å»ºè®®å 建ç«ä¸ä¸ªå ¨é¢ç认è¯ï¼åæ ¹æ®éè¦æ·±å ¥æä¸é¡¹è½åã
- æ们é¤äºéè¿ç¨æ·æåæ¥å¦ä¹ ä¸é¢çææ¯ï¼ä¹å¯å¤åè Kubernetes çè±å¼è®¾è®¡ææ¡£ï¼ä¸»è¦æ¯ Design ProposalsãKEPsã
第ä¸é¶æ®µ 大ä¹æï¼ç»èº«å¦ä¹ ï¼
ç®æ
- äºè§£ Kubernetes çæ项ç®
- è·è¸ª Kubernetes 社åºåå±
- è·è¸ª CNCF 社åºåå±
è·¯å¾
ç®å为æ¢ï¼æ们å¦ä¹ äºå¾å¤ Kubernetes çæ¦å¿µï¼ä½ä¹åªæ¯å ¶æéè¦çé¨åãå¨æ¬é¶æ®µï¼æ们éè¦ä¸æ³¨ä»¥ä¸å 个é®é¢ï¼
- å¦ä½è·è¿ Kubernetes çæ°åè½ï¼ä»¥åç°æåè½çæ´å¤ç»èï¼
- å¦ä½äºè§£ Kubernetes æ´ä¸ªçæç¯å¢çåå±ï¼
é¦å ï¼è®©æ们ä¸èµ·æ¥å¦ä¹ å 个éè¦ç项ç®ãå´ç» Kubernetes ççæç¯å¢å»ºè®¾æ¯å ¶æ为容å¨æ åçå ³é®ã
- Helmï¼ä½ä¸º Kubernetes çæéç brewãdnfãdpkgï¼Helm 为 Kubernetes æä¾äºå 管çè½åï¼æ¹ä¾¿ç¨æ·å¿«éé¨ç½²å®è£ åç§æå¡ã
- Harborï¼Harbor ä¸ Kubernetes æ ç´æ¥å ³ç³»ï¼ä½ä½ä¸ºäºåçç¯å¢ä¸æ常ç¨çéåä»åºè§£å³æ¹æ¡ï¼äºè§£ Harbor ååéè¦ã
- Prometheusï¼Prometheus æ¯äºåçç¯å¢ä¸æéè¦ççæ§ç»ä»¶ã
- Istioï¼Istio æ¯æå¡ç½æ ¼çå ³é®é¡¹ç®ï¼ä½è¾ä¸ºå¤æï¼å¯ä»¥å°è¯ç®åäºè§£ã
以ä¸ï¼æä»¬ä» ååºäºæå°éçéè¦é¡¹ç®ï¼Kubernetes å¨è¾¹ç项ç®ååä¹å¤ï¼ä»¤äººåè ð±ãå æ¤å¤§ä¹æçä½ ï¼éè¦å¼å§æç»è·è¸ª Kubernetes åå ¶çæçåå±ï¼çè³å¯ä»¥æ¨å¨å ¶åå±ï¼æ¥ä¸æ¥æ们å举ä¸äºé è°±èµæºï¼
GitHub ä»åº
- Kubernetes Enhancementï¼å ³æ³¨æ°ç¹æ§ç讨论
- Kubernetes Communityï¼å ³æ³¨ç¤¾åºç»ç»æ åµ
- CNCF TOCï¼å ³æ³¨ CNCF è¿å±ï¼åç§æ°é¡¹ç®è®¨è®ºç
- Awesome Kubernetesï¼Kubernetes 项ç®ä¹å¦ä¸å¨ç³»å
å ³æ³¨ GitHub ä»åºå¯ä»¥è®©ä½ äºè§£æä¸æçè¿å±ï¼ä½æ¯ä¿¡æ¯éä¸è¬è¾å¤§ï¼è®¨è®ºå¾å¤é¾åº¦ä¹æ¯è¾å¤§ãä¸è¿å¯¹äºå¤§ä¹æçä½ æ¥è®²ï¼åºè¯¥ä¸æ¯é®é¢ ðãå¦å¤ï¼è¿éè¿å å«å¾å¤ Kubernetes ç³»ç»å é¨ç设计ï¼ä¾å¦è°åº¦å¨çä¼åæ¹æ¡ãèµæºåå¾åæ¶æ¹æ¡çï¼å¼å¾äºè§£åå¦ä¹ ã
Twitter è´¦å·
ä¸é¢æ¨èå 个 Kubernetes 项ç®çæ ¸å¿äººåã大çé½åæ¬¢ç¨ Twitter 交ï¼siï¼æµï¼biï¼ï¼å¯ä»¥å ³æ³¨ä¸æ³¢ãæå ´è¶£çè¯é¢å¯ä»¥å»äº¤æµï¼å¤§çé½ååèæï¼niceã
- Tim Hockin
- Clayton Coleman
- Daniel Smith
- Brian Grant
- Vishnu Kannan
- Saad Ali
- Kelsey Hightower
- Joe Beda
- Brendan Burns
- Michelle Noorali
é¤æ¤ä¹å¤ï¼Twitter ä¸è¿æä¸å°é¡¹ç®åå ¶ä» Weekly æ§è´¨ç Twitterï¼æ¨èå 个账å·å ³æ³¨ï¼
Twitter ä¼æ ¹æ®ä½ çå好æ¨èå ¶ä»ç¸å ³å 容ï¼æ¥ä¸æ¥å°±èªç±åæ¥ã
Blog è´¦å·
å¯ä»¥å ³æ³¨çä¼ç§ Blog å¾å¤ï¼è¿éå°±ä¸ä¸ä¸å举ã
å¿æ³
ð²
请åæå¦ä¹ ï¼éä¸ä¸å¥é»é¸¡æ±¤ï¼
"The last thing you want is to look back on your life and wonder... if only."
许å¯åè®®
- æ¬æéµå®åä½å ±äº« CC BY-NC-SA 3.0 åè®®
- åä¸ç®ç转载ï¼è¯·èç³» marketing@caicloud.io
- å¦æä»»ä½çæé®é¢ï¼è¯·èç³» deyuan@caicloud.io å baomengjiang@caicloud.io
Top Related Projects
Convert designs to code with AI
Introducing Visual Copilot: A new AI model to turn Figma designs to high quality code using your components.
Try Visual Copilot