Kubernetes
Backing Up a Kubernetes Cluster with Velero
· ☕ 8 min read
1. Introduction to Velero Velero is an open-source Kubernetes cluster backup and migration tool from the heptio team (acquired by VMWare). Velero stores cluster resources in object storage. It supports AWS, Azure, and GCP object storage by default, is compatible with the S3 protocol, and can be extended to other platforms such as Aliyun OSS through plugins.

Building an Automated Test System with Kubernetes and Jenkins
· ☕ 6 min read
1. Test Layering The purpose of testing is to verify expected behavior and uncover latent defects. Testing strengthens confidence that a qualified product can be delivered, and it is what makes agile iteration possible. You could say that testing determines the development pace of a product. The network model has the seven-layer OSI and the four-layer TCP, while development patterns include MTV, MVC, MVP, MVVM, and so on.

Dynamically Creating a Jenkins Slave on Kubernetes
· ☕ 3 min read
1. Jenkins Working Modes Jenkins has a single-Master, multi-Slave architecture. The Master assigns tasks and manages services. Slaves execute the actual tasks. Even when multiple Masters are deployed, they remain independent of one another and cannot coordinate scheduling. A high-availability Jenkins solution requires an external task distribution framework, such as

Basic Operations for Deployments in Kubernetes
· ☕ 3 min read
A Deployment controls the number and state of Pods by creating ReplicaSets. This post mainly introduces some common Deployment operations. 1. Deployment yaml Format Passing the --dry-run flag means the command is not actually executed, only YAML output is generated: 1 kubectl create deployment nginx --image=nginx --dry-run -o yaml apiVersion: apps/v1 kind: Deployment metadata: creationTimestamp: null labels: app: nginx name: nginx spec: replicas: 1 selector: matchLabels: app: nginx strategy: {} template: metadata: creationTimestamp: null labels: app: nginx spec: containers: - image: nginx name: nginx resources: {} status: {} 2.

How to Develop an Operator Using KubeBuilder
· ☕ 8 min read
With the Operator approach, Kubernetes functionality can be extended in a friendly way. Operator = CRD + Controller. First you generate the CRD from a yaml definition, then the Controller continuously watches the data in etcd and performs the corresponding actions. There is a lot of tedious and repetitive work involved in developing an Operator.