01 2020 档案
摘要:Service介绍 Kubernetes 之所以需要 Service,一方面是因为 Pod的IP不是固定的,另一方面则是因为一组 Pod 实例之间总会有负载均衡的需求 Service是由Kube-proxy组件加上iptables来共同实现的 Service vip(vip 是k8s自动为Servi
阅读全文
摘要:网络栈 一个进程发起和响应网络环境(网络栈) 网卡 回环设备 路由表 iptables规则 kubernetes-cni包 在宿主机上安装CNI插件所需要的基础可执行文件(/opt/cni/bin) flannel项目对应的cni插件已经被内置了 无需单独安装 weave calico等安装插件的时
阅读全文
摘要:docker pull使用代理 在终端设置代理的时候docker pull的时候是不会走代理的 mkdir -p /etc/systemd/system/docker.service.d 之后新建下面这个文件走http代理 vim /etc/systemd/system/docker.service
阅读全文
摘要:基础概念 k8s操作pod对象的所有业务逻辑 都是由各种控制器来完成的 k8s的所有控制器都存储在pkg/controller目录下 这个目录下的每个控制器都以自己的方式负责某种编排功能 它们都遵循着一种通用的编排模式 控制循环(control loop)= 调谐循环 = 同步循环 通过在一个无限循
阅读全文
摘要:基础概念 k8s中的所有API对象都保存在etcd中 对这些API对象的操作必须通过APIServer进行访问其中一个重要的原因就是必须通过APIserver进行授权工作 Role:角色,它其实是一组规则,定义了一组对 Kubernetes API 对象的操作权限 Role 对象指定了它能产生作用的
阅读全文
摘要:声明式API 所谓“声明式”,指的就是我只需要提交一个定义好的 API 对象来“声明”,我所期望的状态是什么样子 “声明式 API”允许有多个 API 写端,以 PATCH 的方式对 API 对象进行修改,而无需关心本地原始 YAML 文件的内容 Kubernetes 项目才可以基于对 API 对象
阅读全文
摘要:资源说明 kubectl本身带有认证信息 认证信息文件存放在用户家目录下的/root/.kube/config kubectl 可以远程访问 只需要把配置文件拷贝过去 k8s的输入输出都是以json格式来传递的 [root@k8s-master ~]# kubectl proxy --port=80
阅读全文
摘要:Pod概念 pod是k8s的基本调度单元 pod扮演的是传统部署环境中的虚拟机角色 容器扮演的运行在虚拟机中的用户进程 由一个或多个容器组合在一起得共享资源 共享存储 如Volumes卷 网络 唯一的集群IP地址 每个容器运行的信息 例如:容器镜像版本 Pod对象字段 NodeSelector 提供
阅读全文
摘要:CRD制作步骤 1.在GOPATH/src创建一个项目根目录 以mynet项目为示例 2.在根目录/apis/api组名 目录下创建一个register.go用来放置全局变量 API组名是myapi API版本是v1 package mynet const ( GroupName="mynet.k8
阅读全文
摘要:插件介绍 flannel项目本身只是一个框架 真正为用户提供容器网络功能的是后端实现 目前支持三种方式 1.VXLAN 2.host-gw 3.UDP flannel会在宿主机上创建一个flannel0设备和创建一系列的路由表规则 flannel0设备介绍 负责在操作系统内核和用户应用程序之间传递I
阅读全文
摘要:包的定义 包文件所在的位置 包文件就是一个Go源码文件 如何指定包名 package name //name是目录名称 不能是main 在同一个目录中所有的go文件的包名必须要相同 否则会异常 包文件所在的目录如何命名 如果包是对外发布的 最好用域名来命名顶层的包目录 以保证全球唯一 import(
阅读全文
摘要:默认方式 安装k8s.io/code-generator$ go get -u k8s.io/code-generator/ ... 但是由于网络原因 这种情况一般实现不了 github方式安装 mkdir -p /home/gocode/src/k8s.io git clone https://g
阅读全文
摘要:存储卷 同一个pod内的所有容器共享存储 网络 用户等空间 pod内的容器都是以pause镜像为基础镜像来运行的 k8s.gcr.io/pause 3.1 da86e6ba6ca1 17 mon 742 kB emptyDir 临时存储目录 pod删除 存储卷也随即会被删除 hostPath 主机目
阅读全文
摘要:索引名称匹配 1.在根据索引名称规则判断es集群中是否存在相关索引 2.索引管理(名称)匹配中的*号是不会被解析成正则的 而是会当成一个普通的字符串 3.索引名称中用空格符号来代替正则中*号的作用 4.根据索引名称的前缀和后缀来匹配查找相关索引 5.这种方式只能在kibana中使用 使用自己的api
阅读全文
摘要:shell获取命令的返回值 res=`docker run -dti -v $rootdir:/monitor -v /etc/localtime:/etc/localtime:ro 86912afeeaa8 /bin/bash` echo $res echo "${res} container i
阅读全文