BenjaminYang In solitude, where we are least alone

随笔分类 -  kubernetes

kubernetes learn
摘要:基于Kubernetes构建企业Jenkins CI/CD平台 1.蓝绿发布 项目逻辑上分为AB组,在项目升级时,首先把A组从负 载均衡中摘除,进行新版本的部署。 B组仍然继续提供 服务。A组升级完成上线,B组从负载均衡中摘除。 特点: 策略简单 升级/回滚速度快 用户无感知,平滑过渡 缺点: 需要 阅读全文
posted @ 2020-04-29 11:09 benjamin杨 阅读(3445) 评论(1) 推荐(1) 编辑
摘要:使用ELK收集k8s平台日志 1.收集哪些日志? K8S系统的组件日志 K8S Cluster里面部署的应用程序日志 - 标准输出 - 日志文件 (输出到指定文件里) - 日志轮转(本地保留30天) - 日志格式 (json,kv) 如果是kubeadm方式部署的k8s 日志是收集的 /var/lo 阅读全文
posted @ 2020-04-29 11:08 benjamin杨 阅读(2891) 评论(0) 推荐(1) 编辑
摘要:1.Prometheus 是什么 Prometheus(普罗米修斯)是一个最初在SoundCloud上构建的监控系统。自2012年成为社区开源项目,拥 有非常活跃的开发人员和用户社区。为强调开源及独立维护,Prometheus于2016年加入云原生云计算基金会 (CNCF),成为继Kubernete 阅读全文
posted @ 2020-03-09 09:12 benjamin杨 阅读(9965) 评论(2) 推荐(1) 编辑
摘要:1.项目迁移到K8S平台是怎样的流程 制作镜像: 使用dockerfile制作docker 镜像 镜像分为 基础镜像:centos,ubuntu 服务镜像:openjdk,nginx,mysql 项目镜像:项目代码打包在服务镜像里,最终交付物 java或者go的应用需要编译,php的可以不用编译。 阅读全文
posted @ 2020-03-09 09:10 benjamin杨 阅读(22177) 评论(5) 推荐(5) 编辑
摘要:1.k8s安全框架介绍 访问K8S集群的资源需要过三关:认证、鉴权、准入控制 普通用户若要安全访问集群API Server,往往需要证书、 Token或者用户名+密码;Pod访问,需要ServiceAccount K8S安全控制框架主要由下面3个阶段进行控制,每一个阶段 都支持插件方式,通过API 阅读全文
posted @ 2020-03-09 09:09 benjamin杨 阅读(2560) 评论(0) 推荐(0) 编辑
摘要:pod kubectl delete pod [pod name] --force --grace-period=0 -n [namespace] pv kubectl patch pv pv001 -p '{"metadata":{"finalizers":null}}' pvc kubectl 阅读全文
posted @ 2020-03-09 09:08 benjamin杨 阅读(3775) 评论(0) 推荐(0) 编辑
摘要:1.StatefulSet概述 部署有状态应用 解决Pod独立生命周期,保持Pod启动顺序和唯一性 1. 稳定,唯一的网络标识符,持久存储 2. 有序,优雅的部署和扩展、删除和终止 3. 有序,滚动更新 应用场景:数据库 StatefulSet与Deployment区别: 有身份的! 身份三要素: 阅读全文
posted @ 2020-03-09 09:06 benjamin杨 阅读(534) 评论(0) 推荐(0) 编辑
摘要:1.Volume volume使用说明 Kubernetes中的Volume提供了在容器中挂载外部存储的能力 Pod需要设置卷来源(spec.volume)和挂载点(spec.containers.volumeMounts)两个信息后才可 以使用相应的Volume volume的分类 大致可以分为三 阅读全文
posted @ 2020-03-09 09:04 benjamin杨 阅读(1869) 评论(0) 推荐(0) 编辑
摘要:1.Secret 常见的应用配置方式 镜像 配置中心 配置文件 共享存储 放到git 仓库 配置文件分类: 敏感信息 非敏感信息 如账号密码 服务器地址 Secret再k8s中 的使用方式 加密数据并存放Etcd中,让Pod的容器以挂载Volume方式访问。 应用场景:凭据 Pod使用secret两 阅读全文
posted @ 2020-03-09 09:03 benjamin杨 阅读(441) 评论(0) 推荐(0) 编辑
摘要:Ingress为弥补NodePort不足而生 NodePort一些不足: • 一个端口只能一个服务使用,端口需提前规划 • 只支持4层负载均衡 nginx 动态感知pod ip 的变化,根据变化动态设置nginx 的upstream,并实现负载均衡 ingress controller 动态刷新 p 阅读全文
posted @ 2020-03-09 09:02 benjamin杨 阅读(1625) 评论(0) 推荐(0) 编辑
摘要:Service 存在的意义 • 防止Pod失联(服务发现) • 定义一组Pod的访问策略(负载均衡) Pod与Service的关系 • 通过label-selector相关联 • 通过Service实现Pod的负载均衡( TCP/UDP 4层) Service三种类型 ClusterIP: 分配一个 阅读全文
posted @ 2020-03-09 09:01 benjamin杨 阅读(546) 评论(0) 推荐(0) 编辑
摘要:Pod与controllers的关系 controllers:在集群上管理和运行容器的对象 通过label-selector相关联 Pod通过控制器实现应用的运维,如伸缩,滚动升级等 一般在部署应用的时候很少直接部署pod,都是通过控制器来部署。 Deployment Deployment功能: 部 阅读全文
posted @ 2020-03-09 08:59 benjamin杨 阅读(364) 评论(0) 推荐(0) 编辑
摘要:深入理解pod pod定义详解 apiVersion: v1 //版本 kind: pod //类型,pod metadata: //元数据 name: String //元数据,pod的名字 namespace: String //元数据,pod的命名空间 labels: //元数据,标签列表 - 阅读全文
posted @ 2020-03-09 08:58 benjamin杨 阅读(959) 评论(0) 推荐(0) 编辑
摘要:kubectl说明: 当没有使用ui,api ,操作kubernetes集群时,使用kubectl来操作集群的 增删改查 kubectl 相当于一个客户端cli 来与kube-apiserver进行交互,达到操控集群的作用。 kubectl 语法: kubectl命令行语法: kubectl [co 阅读全文
posted @ 2020-03-09 08:57 benjamin杨 阅读(1567) 评论(0) 推荐(0) 编辑
摘要:YAML说明: K8S 里所有的资源或者配置文件都可以用 yaml 或 Json 定义。YAML 是一个 JSON/ 的超集,任何有效 JSON 文件也都是一个有效的YAML文件。· 语法格式: • 缩进表示层级关系 • 不支持制表符“tab”缩进,使用空格缩进 • 通常开头缩进 2 个空格 • 字 阅读全文
posted @ 2020-03-09 08:54 benjamin杨 阅读(1352) 评论(0) 推荐(0) 编辑
摘要:1.服务器规划 角色 IP 组件 k8s-master1 192.168.31.63 kube-apiserver kube-controller-manager kube-scheduler etcd k8s-master2 192.168.31.64 kube-apiserver kube-co 阅读全文
posted @ 2020-03-09 08:50 benjamin杨 阅读(5157) 评论(1) 推荐(1) 编辑
摘要:在 Kubernetes Dashboard 中可以查看集群中应用的运行状态,也能够创建和修改各种 Kubernetes 资源,比如 Deployment、Job、DaemonSet 等。用户可以 Scale Up/Down Deployment、执行 Rolling Update、重启某个 Pod 阅读全文
posted @ 2018-11-18 16:20 benjamin杨 阅读(3406) 评论(0) 推荐(0) 编辑
摘要:1.Kubernetes 网络模型 Kubernetes 采用的是基于扁平地址空间的网络模型,集群中的每个 Pod 都有自己的 IP 地址,Pod 之间不需要配置 NAT 就能直接通信。另外,同一个 Pod 中的容器共享 Pod 的 IP,能够通过 localhost 通信。 这种网络模型对应用开发 阅读全文
posted @ 2018-11-18 11:32 benjamin杨 阅读(1152) 评论(0) 推荐(0) 编辑
摘要:chart 是 Helm 的应用打包格式。chart 由一系列文件组成,这些文件描述了 Kubernetes 部署应用时所需要的资源,比如 Service、Deployment、PersistentVolumeClaim、Secret、ConfigMap 等。 单个的 chart 可以非常简单,只用 阅读全文
posted @ 2018-11-16 14:54 benjamin杨 阅读(11431) 评论(0) 推荐(0) 编辑
摘要:每个成功的软件平台都有一个优秀的打包系统,比如 Debian、Ubuntu 的 apt,Redhat、Centos 的 yum。而 Helm 则是 Kubernetes 上的包管理器。 本章我们将讨论为什么需要 Helm,它的架构和组件,以及如何使用 Helm。 1.Why Helm Helm 到底 阅读全文
posted @ 2018-11-15 14:22 benjamin杨 阅读(3121) 评论(2) 推荐(1) 编辑