自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(37)
  • 收藏
  • 关注

原创 kubernetes如何使用自有的用户系统

kubernetes如何使用自有的用户系统K8s 支持基于第三方的webhook token 的认证方式,有了这套机制可以可以让k8s使用公司现有的用户管理系统无需维护多套。要支持webhook token 认证需要对api server 进行一下配置--authentication-token-webhook-config-file 描述如何调用远程认证服务器的配置文件--authentication-token-webhook-cache-ttl 认证的缓存时间,默认2分钟。配置文

2021-12-18 10:21:06 524

原创 kubernetes 证书到期续期

kubernetes 证书续期好久没用过以前搭建的集群了,今天想用的时候发现证书到期了kubeadm 管理集群证书通过命令kubeadm alpha certs check-expiration 查看集群所有证书的到期时间,发现全部过期了。通过kubeadm alpha certs renew all 命令将所有集群续期一年。再次通过命令kubeadm alpha certs check-expiration 查看集群所有证书的到期时间 ,发现已经续期1年。使用kubectl ge

2021-10-28 20:49:13 231

原创 【Kubernetes】k8s使用stargz光速分发镜像

#k8s使用stargz光速分发镜像一、环境准备按照k8s 参照上一篇文档 搭建k8s平台-containerd组件名版本kubernetes1.20.1containerd1.4.3stargz-snapshot0.6.4安装stargz-snapshotter# 下载安装包wget https://github.com/containerd/stargz-snapshotter/releases/download/v0.6.4/stargz-sna

2021-06-30 18:38:33 694 1

原创 搭建k8s平台-containerd为容器引擎

搭建k8s平台-containerd本文介绍基于centos 7.6 并使用 containerd 作为容器运行引擎搭建单master kubernetes 实验环境。环境准备本步骤在所有的master节点和worker 节点都要执行。关闭防火墙systemctl stop firewalld systemctl disable firewalld关闭selinux 修改配置文件保证开机不自启selinuxsetenforce 0sed -i 's/SELINUX=enforci

2021-06-28 16:35:25 689

原创 【kubernetes】【理解kube-controller 二】kube-scheduler 里的调度框架

【kubernetes】【理解kube-controller 二】kube-scheduler 里的调度框架概述本文主要介绍k8s.io/kubernetes/pkg/scheduler/framework 的设计理念。调度框架为kube-scheduler 提供一组插件式api,这些插件编译到kube-scheduler 中,也可以以插件的姿势实现更多的调度特性,这样可以保证核心组件简单、易维护。Scheduling Cycle& Binding Cycle每一个需要调度的pod 都会

2021-05-04 11:47:09 183

原创 【kubernetes】【理解kube-scheduler一】kube-scheduler中的三种队列

kubernetes 中的调度队列kube-scheduler 中调度队列是一个重要的组成部分。它可以控制

2021-05-04 11:33:07 773

翻译 Go内存模型

go 内存模型介绍go 内存模型是在特定的情况下可以保证一个goroutine观察到的数据和另一个不同的goroutine写入的数据一致。happens before在一个goroutine中,写和读必须按照程序定义的顺序去执行。也就是说,只有在指令重排序不会改变语言规范定义的goroutine中的行为时,编译器和处理器才可以重新排序在单个goroutine中执行的读和写操作。 由于指令重排序,一个goroutine 观察到的是顺序可能和另外一个goroutine 观察到的顺序不同。例如 a=1;b

2021-04-27 23:41:56 152

原创 provisional headers are shown问题排查

问题背景在业务中实现一个上传文件的功能,为了减少文件在服务器流转的次数,直接给前端在目标服务器上开放了一个api,用于上传文件, 在对接时前端发送请求时出现了 provisional headers are shown 报错请求直接被取消了。前端同学 搜索了下 就说是跨域问题,可以后端明明写了允许跨域,但问题依然存在。通过搜索引擎发现该问题出现的原因无外乎以下几点:跨域,请求被浏览器拦截请求被浏览器插件拦截服务器出错或者超时,没有真正的返回强缓存from disk cache或者from me

2020-06-30 12:53:48 16570 1

原创 kube-controller 参数整理

flagtypedescriptionconfigstring配置文件的路径。标记覆盖此文件中的值。masterstringk8s api server 地址,覆盖kubeconfig 中的值write-config-tostring如果配置了该项,则将配置写入该文件并退出bind-addressstring要侦听的——secureport端口的IP地址。集群的其他部分以及CLI/web客户端必须能够访问相关的接口。如果空白,所有接口将被使用(...

2020-06-29 19:23:42 340

原创 【k8s】Pod升级和回滚

pod的升级回滚若pod是通过Deployment创建的,我们可以通过修改对应deployment的spec.template或镜像名称,并应用到deployment上,系统便可以完成deployment的更新。如果更新过程中出现了错误,则还可以通过回滚操作恢复pod。Deployment的升级以nginx deployment为例:apiVersion: apps/v1kind: ...

2020-04-12 23:36:36 676 1

原创 【k8s】pod健康检查和可用性检查

【k8s】pod健康检查和可用性检查kubernetes 对pod的健康状态可以通过两种探针来检查:livenessProbe 和ReadinessProbe, kebelet 定期执行两类探针来诊断容器的存活状态。LivenessProb: 用于判断容器是否存活即Running状态,如果LivenessProbe探针探测带容器不见康,kubelet将会杀死该容器并根据重启策略做出对应的处...

2020-03-30 16:47:46 578

原创 【Golang】细数go语言中的各种占位符

【Golang】细数go语言中的各种占位符占位符作用%s正常输出字符串%5s正常输出字符串且最小宽度为5,不足前面补充空格%-5s正常输出字符串且最小宽度为5,不足后面补充空格%q输出字符串,并加引号%#q输出字符串,并加反引号%x输出小写16进制% x输出带空格的小写16进制% X输出带空格的大写16进制%d...

2020-03-22 14:41:16 1213

原创 k8s CLI 操作笔记

k8s CLI 操作笔记k8s 获取所有的命名空间 namspace 可简写为 ns[root@vic-master ~]# kubectl get nsNAME STATUS AGEdefault Active 32ddevelopment Active 31dkube-node-lease Acti...

2020-01-16 23:35:24 860

原创 【Golang】 golang 访问控制框架casbin

一。 开始Casbin 是一个强大的、高效的开源访问控制框架,其权限管理机制支持多种访问控制模型。ACL (Access Control List, 访问控制列表)具有超级用户 的 ACL没有用户的 ACL: 对于没有身份验证或用户登录的系统尤其有用。没有资源的 ACL: 某些场景可能只针对资源的类型, 而不是单个资源, 诸如 write-article , read-log 等权限。...

2020-01-12 22:26:10 785

原创 【harbor 源码学习】harbor中的访问控制

一 前言harbor 是 vmware 开源的一个企业级的容器镜像服务,他的访问控制使用了 casbin 框架。Casbin 是一个强大的、高效的开源访问控制框架,其权限管理机制支持多种访问控制模型。二 casbincasbin 支持以下的访问控制模型,harbor 就是支持支援角色的 rbac:ACL (Access Control List, 访问控制列表)具有超级用户 的...

2020-01-12 15:57:48 750

原创 【harbor 学习】Registry 配置基于token的认证

【harbor】Registry 配置基于token的认证1. 前言registry默认配置下是没有认证授权的,在没有认证的情况下用户可以在registry种为所欲为,需要认证授权则需要额外配置。基于token认证的方式可以很好的将registry和认证中心解耦,并能具有很高的安全性。harbor也是基于token的认证方式2. docker login之前的文章写到过docker lo...

2019-12-11 17:53:27 3287 1

原创 standard_init_linux.go:195: exec user process caused "no such file or directory

问题描述制作镜像完成后碰到个问题,报错显示standard_init_linux.go:195: exec user process caused "no such file or directory"问题定位:Dockerfile 是我在windows上写好这个文件复制过去的,因为默认使用DOC的文本格式 到了linux需要将其进行转换。解决方法:使用vim 打开Dockerfile,...

2019-12-07 18:44:47 514

原创 goland 调试docker容器中的go代码

goland 调试docker容器中的go代码前言:为什么需要去远程容器中的go代码?最近正在看Harbor的源码,由于本人电脑是windows 无法直接启动进行debug,后来搭了一个CentOS 的桌面环境,又发现启动需要很多很多环境参数…而且还有很多其他组件都是运行在docker上,使用linux系统启动的方案又失败了!后来查了好多资料,找到delve这个插件,该插件可以在docker容...

2019-12-03 19:54:43 3952

原创 docker push 流程调用接口解析

docker push 接口详情[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-iNQwLoON-1574158114105)(…/pic/dockerpush.png)]step 1. Api 版本确认registry 服务器会通过/v2/接口根据返回的状态码来提供api的版本信息,请求格式如下GET /v2如果返回200 OK 则表明registry...

2019-11-19 18:09:06 2991 1

原创 【harbor】docker registry 设置nginx反向代理

一. 场景用户已经有一套认证方式用于其他的应用系统,想使用同一方式管理我们的registry,通常,这包括在后端使用LDAP / AD的企业设置以及在其内部http门户前面的SSO机制。二. 解决方案我们可以在registry加个nginx,通过反向代理为docker引擎实现认证服务。同样企业级的镜像仓库harbor也是使用相同的方式。三. 配置1. 环境准备应用版本...

2019-11-16 23:39:12 1661

原创 【Go学习笔记】 使用Beego创建Mvc项目

【Go学习笔记】 使用Beego创建Mvc项目安装beegobeego的安装是典型的Go安装包的形式:$ go get github.com/astaxie/beego安装bee 工具$ go get github.com/beego/bee创建项目beego 创建项目通过 bee 命令来创建$ bee new image-service输出:______| ___ \...

2019-11-10 13:10:13 210

原创 【Go学习笔记】go指南练习题牛顿法

【go学习笔记】go指南练习题牛顿法最近在学习golang 在它的教程网站上有一道练习题练习题地址package mainimport ( "fmt" "math")/*** x 被开方的数* y 循环次数 次数越多越准确**/func newton(x float64,y int) float64{ z := 1.0 for i := 0;i<y ;i++...

2019-10-16 13:01:57 248

原创 docker java sdk报错 java.lang.NoClassDefFoundError: org/glassfish/hk2/api/MultiException

报错内容java.lang.NoClassDefFoundError: org/glassfish/hk2/api/MultiException at com.example.dockerdemo.tool.DockerTool.getDockerClient(DockerTool.java:20) ~[classes/:na] at com.example.dockerdemo.tool....

2019-10-10 17:05:12 1334 1

原创 java gc 思维导图

2019-09-13 22:09:17 238 1

原创 【Spring源码】 Spring ioc的创建之刷新容器(四)

相关文章【Spring源码】Spring ioc创建的流程(一)【Spring源码】 Spring ioc的创建之刷新容器(二)【Spring源码】 Spring ioc的创建之刷新容器(三)文章目录相关文章一. 刷新容器的源码一. 刷新容器的源码 @Override public void refresh() throws BeansException, IllegalS...

2019-08-25 16:33:27 197

原创 【Spring源码】 Spring ioc的创建之刷新容器(三)

相关文章【Spring源码】Spring ioc创建的流程(一)【Spring源码】 Spring ioc的创建之刷新容器(二)【Spring源码】 Spring ioc的创建之刷新容器(三)文章目录相关文章一. 刷新容器的源码5.invokeBeanFactoryPostProcessors6. registerBeanPostProcessors 注册bean后置处理器7. init...

2019-08-25 15:32:56 143

原创 【Spring源码】 Spring ioc的创建之刷新容器(二)

相关文章【Spring源码】Spring ioc创建的流程(一)文章目录相关文章一. 刷新容器的源码1. 准备刷新容器 prepareRefresh();2. 获取beanFactory3. 给 DefaultListableFactoryBean 赋值4. postProcessBeanFactory(beanFactory);一. 刷新容器的源码 @Override pu...

2019-08-24 21:37:53 109

原创 【Spring源码】Spring ioc创建的流程(一)

文章目录一.准备二. 构造器三.注册配置类四. 刷新容器一.准备 public void contextLoads() throws Exception { ApplicationContext applicationContext = new AnnotationConfigApplicationContext(BeanConfig.class); }@Co...

2019-08-24 20:53:31 166

原创 动态代理之Cglib

动态代理之CglibJDK动态代理的缺点,被代理的类必须实现接口,若不实现接口则无法完成动态代理。Cglib弥补了这个缺陷。Cglib包底层通过使用一个小而快的字节码处理框架ASM来转换字节码生成新的类 新生成的类是被代理的类的子类 新此被代理的类不能被final修饰。Demopackage com.vic.demo.cglib;import org.springframework.c...

2019-08-21 23:59:47 147

原创 JDK动态代理在Spring源码中的应用

【Spring源码】JAVA JDK动态代理及其在Spring源码中的应用一.JDK动态代理Demo使用JDK动态代理分三步走:创建业务接口,并实现该接口对外提供服务 /** * MathCalculatorService * 创建业务接口 * @author Vic * @date 2019/8/20 */ public...

2019-08-21 17:52:44 221

原创 keystone的基础操作

keystone的基础操作keystone 为所有的openstack服务提供认证服务,这个认证服务使用domains,projects,users,roles的组合。创建一个名为launcher的domain [root@master ~]# openstack domain create --description "launcher domain" launcher +-----...

2019-08-16 17:10:10 312

原创 CentOS搭建 keystone

CentOS keystone 搭建安装前准备keystone 的版本号首字母为A-Z的单词,首字母越大版本越新启用OpenStack repository在CentOS中 extras repository 提供了启用 OpenStack repository的RPM。 CentOS 默认包含了 extras repository,我们可以简单的安装就可以启用 OpenStack r...

2019-08-15 23:34:12 314

原创 docker 创建Mariadb

docker 创建Mariadb获取mariadb 镜像 $ docker pull mariadb创建挂载目录mkdir -p /data/mysql运行镜像 映射端口 挂载卷 设置root密码 $ docker run -p 3306:3306 -v /data/mysql:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=123...

2019-08-14 11:52:19 122

原创 FactoryBean与BeanFactroy

FactoryBean 的作用一般情况下Spring 通过反射机制利用class属性指定实现类来实例化bean,在某些特定的情况下,这种方式受限制,如果按照传统的方式, 可能需要在配置文件中配置大量的信息,灵活性受到限制。为此Spring 提供了FactoryBean的工厂类接口,用户可通过实现该接口来定制实例化Bean的逻辑package org.springframework.bean...

2019-08-02 09:33:28 304

翻译 harbor 架构及docker login push操作流程

harbor 架构架构如上图所示,harbor 包含了6个组件:Proxy: 例如registry,UI,TokenService,都在Proxy之后。Proxy负责转发从浏览器或docker client的请求到后台服务。Registry: 负责存储docker 镜像和docker的pull/push请求。因为Harbor的访问控制,registry会引导client去token...

2019-08-01 00:16:17 1936

原创 BeanDefinition 介绍

BeanDefinition 介绍BeanDefinition 是一个接口,在Spring 中存在三种实现: RootBeanDefinition、 ChildBeanDefinition和GenericBeanDefinition。三种实现均继承了AbstractBeanDefinition,其中BeanDefinition是配置文件<Bean>的元素标签在容器中的内部表现形式...

2019-07-31 00:42:26 194

原创 Spring 创建bean的流程(一)

Spring 创建bean的流程(一)因创建bean的代码复杂,本文探讨bean创建的部分流程,其他流程会后续发布一. Spring 中获取beanSpring 获取bean的方式是调用getBean(String name),那么其内部的运行是怎么样的呢? @Testpublic void contextLoads()throws Exception { Applic...

2019-07-30 22:38:11 220

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除