Operator Pattern 用 Go 扩展 Kubernetes 的最佳实践
从 ResourceVersion 开始,获取后 续的增量数据。 watch 通过网络异步(asynchronous)获取增量数据,所以 cache 提供 的是最终一致性(eventual consistency)。 期间遇到网络、API Server 报错等异常时,会有重试机制 Controller-runtime 的 Informer 增加一段逻辑:如果上层 GET 某个 object 没有对应的0 码力 | 21 页 | 3.06 MB | 9 月前3k8s操作手册 2.3
--service-cidr=10.7.0.0/16 \ # service网段,即cluster ip网段 --ignore-preflight-errors=Swap \ #忽略swap未关闭而导致的检查错误 --image-repository="cof- lee.com:5443/k8s" #指定为集群内部的docker镜像源 如果指定使用集群内部的docker镜像仓库,要提前在docker的daemon com:5443/k8s/etcd:3.4.13-0 #可见镜像名已由默认的k8s.gcr.io/换成了配置文件里指定的docker镜像源 # kubeadm config images pull --image-repository="cof-lee.com:5443/k8s" #提前 下载需要的镜像 # kubeadm init --config /etc/kubeadm-init.yaml /etc/containerd/config.toml #修改以下2行配置 SystemdCgroup = true sandbox_image = "cof-lee.com:5443/k8s/pause:3.9" #和k8s需要的pause镜 像版本保持一致 #如果要启用CRI-Plugin,注释掉其中的0 码力 | 126 页 | 4.33 MB | 1 年前3Jib Kubecon 2018 Talk
github.com/GoogleContainerTools/jib Build containers faster with Jib A container image builder for Java applications Our Team Cloud Tools for Java Appu Goundan @coollog @loosebazooka Qingyang com/GoogleContainerTools/jib What did we do? 1. Write first Dockerfile 2. Reduce image size 3. Don’t run installs 4. Use better base image 5. Write .dockerignore 6. Improve incremental speed 7. Switch to use com/GoogleContainerTools/jib What did we do? 1. Write first Dockerfile 2. Reduce image size 3. Don’t run installs 4. Use better base image 5. Write .dockerignore 6. Improve incremental speed 7. Switch to use0 码力 | 90 页 | 2.84 MB | 1 年前3Kubernetes开源书 - 周立
2m v1.11.2 每个node都是ready的,说明OK。 验证2:部署⼀个NGINX # 启动⼀个单节点nginx ]# kubectl run nginx --image=nginx:1.7.9 --port=80 # 为“nginx”服务暴露端⼝ ]# kubectl expose deployment nginx --type=NodePort # 查看nginx服务详情 labels: app: nginx spec: 06-理解K8s对象 21 containers: - name: nginx image: nginx:1.7.9 ports: - containerPort: 80 使⽤该 .yaml ⽂件创建Deployment的⼀种⽅法是在 kubectl 要临时设置请求的Namespace,可使⽤ --namespace 标志。 例如: $ kubectl --namespace=run nginx --image=nginx $ kubectl --namespace= get pods 设置Namespace⾸选项 可在上下⽂中永久保存所有后续 0 码力 | 135 页 | 21.02 MB | 1 年前3Kubernetes Native DevOps Practice
environments(sidecar) Share files between containers, or cache build files Container Image - Image of build / dependent environment [] Command - Command to execute [] Args group of user applications Scheduling customization Cluster Resource Auto Scaling kubelet can do image GC DevOps Service DevOps Operator DevOps Operator DevOps Service DevOps Manager CronJob test - use sidecar container as dependent environment • Encapsulate API / SDK of other tools using image for better integration/ collaboration • Leverage k8s integration capabilities, such as external0 码力 | 21 页 | 6.39 MB | 1 年前3基于 Kubernetes 构建标准可扩展的云原生应用管理平台-孙健波、周正喜
在服务端做抽象并不简单 WebService - image - replicas - port 抽象 Deployment - image - replicas Service - port 原始 k8s API 资源 Workload - image - replicas Rollout - canary ArgoRollout - image - replicas - rollout rollout Deployment - image - env - labelSelectors Knative Revision - image - env 组合 拆解 转换 做抽象容易形成“谷仓” • 一个抽象满足不了所有场景,所以… 有状态应用 PaaS 无状态应用 PaaS Serverless PaaS 用户 Kubernetes Cert Manager “应用”配置 Git (as source of truth) 持续集成 ● Build ● Run Unit Tests ● Build Docker Image ● Push Docker Image Image Registry Operational Configs (YAML) Revision Controller Scaling Controller Rollout0 码力 | 27 页 | 3.60 MB | 9 月前3K8S安装部署开放服务
traefik-ingress-controller terminationGracePeriodSeconds: 1 containers: - image: traefik:v2.2.8 name: traefik-ingress-lb ports: - name: web passed into your templates. replicaCount: 3 image: repository: isurpass/openservice pullPolicy: IfNotPresent # Overrides the image tag whose default is the chart appVersion. tag: containers: - name: openservice image: "{{ .Values.image.repository }}:{{ .Chart.AppVersion }}" imagePullPolicy: {{ .Values.image.pullPolicy }} ports: -0 码力 | 54 页 | 1.23 MB | 1 年前3Go Programming Pattern in Kubernetes Philosophy
confidential data HPA I need auto-scaling Understand Kubernetes in 2 min • kubectl run nginx —image=nginx:1.7.9 —replicas=3 apiVersion: apps/v1beta1 kind: Deployment metadata: name: nginx-deployment metadata: labels: app: nginx spec: containers: - name: nginx image: nginx:1.7.9 ports: - containerPort: 80 • kubectl create -f deployment.yaml • kubectl 1: Controller • Control everything by Controller • Level driven, not edge driven edge level Image: https://speakerdeck.com/thockin/edge-vs-level-triggered-logic Controller • The heart of Kubernetes0 码力 | 29 页 | 2.12 MB | 1 年前3Kubernetes安全求生指南
com/kubernetes-security-best-practices/ ©2019 VMware, Inc. 8 NIST在容器安全指南中揭露了五種容器應用最應關注的風險 映像風險 Image Risk 登錄風險 Registry Risk 容器調度平台風險 Orchestrator Risk 容器風險 Container Risk 實體作業系統風險 Host AUTH REPL Image Pull K8s Cluster deployed by PKS Build Image Push Image Scan Image For CVEs Sign Trusted Image kubectl run Image Registry Image Scanning Image Signing Harbor0 码力 | 23 页 | 2.14 MB | 1 年前3运维上海2017-Kubernetes与AI相结合架构、落地解析-赵慧智
Machine) 由于采用系统当前的内核,Container会启动加载更快,更 轻量,并且更省资源。 Container Image 用来将需要容器化的应用程序及其环境进行打包后存储的镜像。 • 通常会有一个 Image 管理仓库来存储 Image。 • 同一个 Image 会有版本记录。 • 只包含软件环境的配置 • 硬件配置需要运行时去指定 OCI (Open Container 该组织于2015年6月22日由Docker,CoreOS等 Container 行 业的领导人推出。 • OCI目前包含两个规范: • 运行时规范(runtime-spec • Image 规范(image-spec Container 管理工具 (User Space) 如何通过 Docker 启动 Container 并与硬件绑定 官方文档参考: https://docs 关键点回顾 • Kubernetes 是什么:容器编排工具 • Container 与 VM 比较的优势:更轻量化,更快,更易部署 • Container Image 的管理 • Container 运行与 Image 的标准:OCI • Kubernetes 的基本架构:Master 与 Node • Node 上的软件架构:Kubernetes 与 container 通信,Node0 码力 | 77 页 | 14.48 MB | 1 年前3
共 31 条
- 1
- 2
- 3
- 4