Kubernetes - Mechanism
|Word Count:12|Reading Time:1mins
基础架构
Master
Worker
工作流程
插件
Author: zhongmingmao
Copyright Notice: All articles on this blog are licensed under CC BY-NC-SA 4.0 unless otherwise stated.
Related Articles

2021-06-08
Kubernetes -- 架构 & 设计思想
容器 本质:由Linux Namespace、Linux Cgroups和rootfs三种技术构建出来的进程的隔离环境 容器的视图 静态视图(Container Image):一组联合挂载在/var/lib/docker/aufs/mnt上的rootfs 动态视图(Container Runtime):由Namespace+Cgroups构成的隔离环境 开发人员并不关心Container Runtime的差异,因为承载容器信息进行传递的,是Container Image Kubernetes架构 角色:Master(控制节点)、Node(计算节点) Master kube-apiserver:负责API服务,整个集群的持久化数据,由kube-apiserver处理后保存在Etcd中 kube-scheduler:负责调度 kube-controller-manager:负责容器编排 Node:kubelet,为最核心的组件 CRI,Container Runtime Interface 主要负责与Container Runtime打交道 只要Container Runtime能够运行标准...

2022-10-29
Kubernetes - Another example
架构 MariaDB ConfigMap maria-cm.yaml12345678910apiVersion: v1kind: ConfigMapmetadata: name: maria-cmdata: DATABASE: 'db' USER: 'wp' PASSWORD: '123' ROOT_PASSWORD: '123' 12$ k apply -f maria-cm.yamlconfigmap/maria-cm created Deployment maria-deploy.yaml1234567891011121314151617181920212223242526apiVersion: apps/v1kind: Deploymentmetadata: name: maria-deploy labels: app: maria-deployspec: replicas: 1 selector: matchLabels: app: maria-deploy ...

2022-10-22
Kubernetes - ConfigMap + Secret
定义ConfigMap 明文配置 12345678$ k create cm info --from-literal=name=zhongmingmao --dry-run=client -oyamlapiVersion: v1data: name: zhongmingmaokind: ConfigMapmetadata: creationTimestamp: null name: info ConfigMap 没有 spec,因为 ConfigMap 存储的是配置数据,并不是容器,因此没有运行时规格 ConfigMap 里的数据都是 Key-Value 结构 cm.yml12345678910apiVersion: v1kind: ConfigMapmetadata: name: infodata: name: zhongmingmao city: guangzhou greeting: | hello kubernetes! 123456789101112131415161718192021222324252627282930$ k apply -f cm.ym...

2022-11-03
Kubernetes - Health
Resources 基于 cgroup 技术 内存使用 Ki、Mi、Gi 来表示 KB、MB、GB;Kubernetes 里 vCPU 的最小使用单位为 0.001,即 m nginx-pod-resources.yaml12345678910111213141516apiVersion: v1kind: Podmetadata: name: nginx-pod-resourcesspec: containers: - name: nginx image: nginx:alpine resources: requests: cpu: 10m memory: 100Mi limits: cpu: 20m memory: 200Mi 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859$ k apply -f nginx-pod-resou...

2022-10-01
Kubernetes - Container Interconnection
拷贝数据123456$ docker run -d --rm redis450662153d83e6e1b30af57443ccfe68d798d5c7f4f8e50d2d287fdde2c1645c$ docker psCONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES450662153d83 redis "docker-entrypoint.s…" 7 seconds ago Up 6 seconds 6379/tcp cranky_wilbur 拷贝宿主机文件到容器 1234567891011$ md5sum a.txtd41d8cd98f00b204e9800998ecf8427e a.txt$ docker cp a.txt 450:/tmp$ docker exec -it 450 sh# ls /tmpa.txt# md5sum /tmp/a.txtd41d8cd98f00b204e98009...

2022-11-08
Kubernetes - Cgroups
Namespace 隔离不完备 在 Linux 内核中,有很多资源和对象是不能被 Namespace 化的,例如时间 如果在容器中使用 settimeofday(2) 的系统调用,整个宿主机的时间都会被修改 Cgroups 在 Linux 中,Cgroups 暴露给用户的操作接口是文件系统 1234567891011121314151617181920$ mount -t cgroupcgroup on /sys/fs/cgroup/systemd type cgroup (rw,nosuid,nodev,noexec,relatime,xattr,name=systemd)cgroup on /sys/fs/cgroup/blkio type cgroup (rw,nosuid,nodev,noexec,relatime,blkio)cgroup on /sys/fs/cgroup/cpu,cpuacct type cgroup (rw,nosuid,nodev,noexec,relatime,cpu,cpuacct)cgroup on /sys/fs/cgroup/devices typ...
Announcement
Things are always unexpected!










