- 博客(140)
- 资源 (2)
- 收藏
- 关注
原创 k8s_day07_03
k8s_day07_03人类用户授权名称空间级别授权示例:注意因为配置简单,通常用命令式命令创建1、创建角色[root@node01 chapter9]# cat pods-reader-rbac.yaml kind: RoleapiVersion: rbac.authorization.k8s.io/v1metadata: namespace: default name: pods-readerrules:- apiGroups: [""] resources: ["p
2022-02-10 22:06:52 864
原创 k8s_day07_02
k8s_day07_02静态密码方式认证k8skubeconfig1、kubeconfig 配置文件: 在 /etc/kubernetes/有conf 结尾的文件 ,那个就是kubeconfig 类型的配置文件。用于控制节点组件 和api交互时提供的身份验证。将用户名、认证信息等组织一起,便于认证到API Server上的认证信息文件;[root@master01 ~]# ls /etc/kubernetes/*.conf/etc/kubernetes/admin.conf /etc/k
2022-02-10 22:06:24 553
原创 k8s_day_07_01
k8s_day_07_01一、k8s系统访问控制基础系统访问控制:插件化实现了三个功能:认证 Authn : 用户身份认证 ,以确保仅能被系统所许可的人访问授权 Authz :虽然都能认证成功 ,但是应该针对不同级别的用户赋予不同权限,实现权限的分配和管理 准入控制 Admission: 审计功能。 执行一些独特的功能 ,体现在以下2方面 检验(Validation) 、变异(?)。检查用户提交数据的规范 是否是apisever 所定义的格式的。 把用户提交的不符合规范的数据范式化(纠正补
2022-02-10 22:05:45 2944
原创 k8s_day_06_04
k8s_day_06_04Stateless 无状态应用一次请求和它相应组成了完整事务,它们不受完成的连接或者现有其他连接的影响,彼此之间没有影响,并且意外中断或者关闭的时候,只要reset 连接就能重新连接就可以了。无状态 pod 示例可以同一模板创建的其他实例无缝取代Stateful 有状态应用:StatefulSet区别: 多个实例彼此间能否互相取代: 指的是每次客户端连接,都在先前事务的上下文中执行,而且还有可能会受到上下文影响,当连接中断时,上下文和事务可能会被存储,一边再次连接时
2022-02-10 22:05:06 1568
原创 k8s_day06_03
k8s_day06_03deploymentdeployment 主要是控制无状态应用的deployment 借助一到多个rs 间接的管理pod。 deployment 是rs 控制器,但是 deploy在定义的时候完全用不到rs 相关的配置。deployments 在更新时候 会创建新的rs和pod。但是k8s 会保存 历史版本的rs 信息, k8s 默认最多保存10个版本的rs 信息 (revisionHistoryLimit),但是只有最近的版本的rs 的pod 才会被创建出来,之
2022-02-10 22:04:05 437
原创 k8s_day06_02
k8s_day06_02rs 滚动发布好处就是不会中断业务,坏处就是会新老版本并存。根据strategy 滚动更新有2种模式先加后减: 提高了后端的可用性 ,但是同时存在多个pod 会增加系统压力先减后加:好处是 不会增加系统压力,缺点是 后端可用的pod 会减少同时增减 : 好处是滚动速度变快旧版本的环境:2个旧pod 的标签( rs/replicaset-demo )app: demoapprelease: stableversion: v1.00个旧pod
2022-02-10 22:03:30 154
原创 k8s_day_06_01
k8s_day_06_01k8s 是一个应用编排系统,什么是编排? 因为非紧密关系中的应用关系各种各样,可能存在一定的依赖性,而且有先后关系,应用编排借助service 实现这种跨应用关系的管理。但是接下来关注的应用编排 集中应用管理本身k8s 中有大量的应用 ,分为紧密关系和非紧密关系的应用,紧密关系的应用通过把它们放在一个pod 中管理 ,非紧密的应用关系通过service管理 让它们可以彼此互相调用。调用的时候需要提供服务总线 用于实现服务注册服务发现。注册的总线 是coredns 中的dn
2022-02-10 22:03:00 657
原创 k8s_day05_03
k8s_day05_03 对于敏感信息,k8s 专门提供了一种资源secret来保存。对敏感信息转换以后再保存,base64编码而非加密,每一次注入到pod中的时候,会自动解码,完成信息的还原。 secret 仍然是以非加密的形式存于etcd 上的,因此对于etcd 的访问采用 双向证书加密认证 ConfigMap的配置信息基本没有类别之分,创建secret 和 configmap 并没有什么异同的地方。 --from-literal 从命令行指定信息, -from-file 从文件加载信息 。不
2022-02-10 22:02:09 917
原创 k8s_day05_02
in-tree 类型的特殊卷插件主要是为了给容器提供配置信息的。因为容器本身是由多层叠加起来的联合挂载的镜像层所组成,构建完成之后,就无法对镜像层上的数据修改,除了附加新的镜像层 , 而且一旦把镜像运行成容器的话,是以黑盒的形式运行的,每一个容器都有它的边界 ,是隔离的文件系统。configMapSecret 与configMap 等同作用 ,却是为了专门存储注入敏感信息 的数据downwardAPI 将运行在pod之外的信息注入到pod 中,如如何为容器化应用提供配置呢?启
2022-02-10 22:01:42 402
原创 k8s_day05_01
k8s_day05_01回顾存储卷作用范围:隶属于Pod,而非容器; pause容器支撑kubelet为了支持存储卷,内建了很多存储服务的客户端:临时存储:emptyDir主机级别的存储:hostPath网络级别的存储:具有持久能力的存储;云存储:awsEBS、…NAS(network attached storage):NFS、…SAN(Storage Area Network):FC,iSCSI, …SDS(Software Defined Storage): Ceph(
2022-02-10 22:00:18 354
原创 k8s_day04_04
k8s_day04_04容器外部存储空间 docker 文件系统具有和 docker 容器具有相同的生命周期, 在多节点运行的容器就有可能因为各种原因删除或者终止 ,为了避免数据与 容器这种存在短暂生命周期、或者不确定生命周期的对象产生直接绑定关系, 应该将其存储的数据(应用数据、状态数据) 存储在容器的文件系统之外, 方式就是为容器引入外部的存储空间外部的存储空间大体分为两类:Host:存在宿主机,如果一个容器发生崩溃了,想得到之前的数据必须有一个条件,只能在同一个节点上把容器复活,但是
2021-12-12 00:33:26 483
原创 k8s_day04 _03
k8s_day04 _03特殊类型的服务:headless 服务service 的作用 就是 为一组pod 提供固定的访问入口,并且能调度请求到后端pod 上。 这个head主要指的是访问入口 cluster-ipheadless 服务 指的就是 cluster-ip 为null 的服务。如果cluster-ip 没有了 ,svc_name 如何解析呢?dns 本身 就具有一定意义的负载均衡功能。 可以让 kube-dns 把service-name 直接解析到pod-ip ,
2021-12-10 01:19:41 1297
原创 k8s_day04_02
k8s_day04_02ipvs 代理模型 kube-proxy 会在每个节点上创建一个名为kube-ipvs0的虚拟接口,并将集群所有Service对象的ClusterIP和ExternalIP都配置在该接口; kube-proxy为每个service生成一个虚拟服务器(Virtual Server)的定义。会生成一个kube-ipvs0 网卡,且在网卡动态绑定svc 的cluster ip地址;ipvs 代理负载算法可以使用多种 ,而不是像是iptables只有 random 算法一种注意
2021-12-10 01:15:00 986
原创 k8s_day03_05
k8s_day03_05service 于endpoint 关系 k8s 当中,service 是标准的资源类型,作用是为了动态的一组pod 提供一个固定的 访问入口,clusterip,访问入口就可以认为是一组应用的前端负载均衡器。 一个service 如何识别它背后有多少个pod ? 在每个pod 上 给他添加独立的标签,前端的service 将使用标签选择器来挑选中一组pod. 过滤名称空间下的pod ,满足标签选择条件的pod 都会被认为是service 的后端端点(一个服务的ip + p
2021-12-06 16:59:20 539
原创 k8s_day03_04
k8s_day03_04 service 要想合理的关联到后端pod 来, 必须借助合适的标签选择器 label selector, 标签选择器依赖于被选择对象之上的各个标签Service的类型1、ClusterIP: 通过集群内部IP地址暴露服务,但该地址仅在集群内部可见、可达,它无法被集群外部的客户端访问;默认类型;eg:创建svc[root@master01 chapter7]# cat services-clusterip-demo.yaml # Maintainer: Ma
2021-12-06 16:58:53 2181
原创 k8s_day03_03
k8s_day03_03容器资源限制resource 相关 request、limit 一个宿主机的内核之上可能管理了一组硬件,包括cpu、内存、一个宿主机上可能运行了多个容器,这些容器将共享底层的同一个内核,很显然 ,硬件是属于内核的,因此任何一个容器内的进程默认可以请求占有内核管理的所有硬件资源。 尤其是多租户的情况当中,有人恶意的运行了一个容器,容器中的进程会尽可能多的占用CPU内存,进而会导致其他用户也无法运行了,容器间的隔离默认情况下 (或者使用docker默认启动时),在内核的名称空
2021-12-05 03:32:36 368
原创 k8s_day03_02
k8s_day03_02.mdCloud Native 程序应该提供的接口 如下: process heath: 以镜像格式打包,并托管于编排系统的容器引擎之上的容器,就是一个黑盒,因此我们想去探测一下容器内的应用、进程,健康与否都会被边界所阻挡,正常情况下,一个为云原生环境所开发的应用程序,他都该考虑到一个问题 ,为了便于监测容器运行的api, 或者为了监视容器是否运行健康的,正常情况下云原生应用应该将自身内部的指标向外输出, 比如 一定要有健康状态探测的接口。【我们只需要访问容器的某个指定位
2021-12-05 03:32:05 315
原创 k8s_day03_01
k8s_day03_01docker-daemon 被拆分了好几个部分containerd: 高级容器运行时 :为用户使用更方便, 离用户更近、比较易用的命令行容器的管理工具但是包括docker bulid 之类的镜像管理工具【docker 当年捐献出来的只有容器运行时环境,而不包括镜像打包工具】runc: 低级容器运行时环境:containerd-shim, 是为了让runc 与oci 兼容的“垫片” 就是中间层。对接k8s CRI 接口,就是从containerd-shim 开始,
2021-12-05 03:31:35 1436 1
原创 k8s_day02_04
k8s_day02_04node 介绍查看所有节点[root@master01 ~]# kubectl get nodeNAME STATUS ROLES AGE VERSIONmaster01 Ready master 7d v1.19.4node01 Ready <none> 6d23h v1.19.4node02 Ready <none> 6d23h v1.19.4
2021-12-05 03:31:04 786
原创 k8s_day02_03
k8s_day02_03 如图,k8s 的用户 群体分为两类,一类是是应用程序客户端,它们访问集群pod 上应用服务的,是来自集群外部引入的流量,主要靠2种方式来引入流量,一种是nodeport 类型的service ,另一种是借助ingress 控制器来引入,ingress 也是转发给service 背后的pod 来实现的。 如果客户端是通过nodeport 进来的,会借助service的调度算法到达pod ,如果通过ingress 入站 ,会借助ingress调度算法 直接到达pod 而不经过se
2021-12-05 03:30:32 458
原创 k8s_day02_02
k8s_day02_02 k8s 的核心目标就是 以应用为中心来组织围绕更好地以容器化的方式运行应用 一个pod 代表着,一组关联度非常高的容器 现代容器设计的核心理念 就是一个容器内只运行一个应用,但有些应用的进程进程内部没有什么依赖关系,或者存在人为按需要施加的关系,显得比较亲密,比如日志agent 和容器自身的应用。 sidecar: 小日本摩托车的跨斗, sidecar 不是车的主体,但是有用,额外的容器为主容器提供辅助功能,就成了主容器的sidecar,为了让容器同进同退的绑定在
2021-11-30 19:08:27 344 2
原创 k8s_day02_01
k8s_day02_01 apiserver 是整个k8s 系统的总线 ,是整个集群中唯一一个能存集群状态数据的位置。 但是apiserver 本身并不存,而是交给etcd 存储了。 所以etcd 在生产环境要做分布式冗余高可用,etcd 是基于go 语言、raft 协议研发的 强一致性分布式 的轻量级kv 存储系统 分布式、强一致的系统在协同时可能会发生脑裂,因此为了避免脑裂,集群的节点一般是奇数个,所以etcd 最少3个节点。因为apiserver 与etcd 是通过https 协议通信的 ,
2021-11-30 19:07:40 2081
原创 k8s_day01_02
马哥k81、k8s 组件/程序 简单介绍kube-apiserver:apiserver 运行的程序 叫kube-apiserver,go语言研发出来的组件。 kube-apiserver 其实就是把etcd 存储系统的kv schema 存储方案 封装为固定格式 , 可以理解为kube-apiserver就是一个数据库,定义了数据库的存储格式 ,etcd想象成是个mysql, 数据库中每个表字段的定义格式我把它叫做数据方案 ,也就是schema 。而apiserver就像是在etcd 上加了封装
2021-11-30 19:05:40 1468
原创 k8s_day01_01
k8s 入门到入坟(马哥k8_day01_01)1、it发展趋势 it 的发展趋势中,我们最早的资源粒度从最早的物理机时代 到达十年之前的 kvm 还有xen 为代表的虚拟化代表的虚拟机时代 ,那个时候,VMware是如日中天的时期,vmware 以产品众多且成熟 而且是虚拟化的先行者 ,所以在当时的商业领域中 颇负盛名。 在开源领域中,仍然以xen 为代表的 称之为 准虚拟化或者半虚拟化技术,以及像后来的kvm 严重依赖于cpu ,内部固有的硬件虚拟化技术hvm 也称之为硬件辅助的虚拟化
2021-11-23 14:10:25 901
原创 notify
inotify rsync服务端配置yum install rsyncecho "rsyncuser:magedu" > /etc/rsync.pass chmod 600 /etc/rsync.pass vim /etc/rsyncd.confuid = rootgid = rootuse chroot = nomax connections = 0ignore errorsexclude = lost+found/log file = /var/log/rsyn
2021-09-29 01:37:23 125
原创 2021-09-28php扩展
tar xvf redis-4.2.0.tgz -C /usr/local/src/cd redis-4.2.0//usr/local/php/bin/phpizeecho $?120 yum install autoconf121 /usr/local/php/bin/phpize122 echo $?125 ./configure --with-php-config=/usr/local/php/bin/php-config --enable-redis126 echo
2021-09-29 01:08:57 93
原创 aqweq
./configure --prefix=/data/nginx/etc/ –user=nginx –group=nginx –sbin-path=/data/nginx/bin/ –modules-path=/usr/lib64/nginx/modules –conf-path=/data/nginx/etc/nginx.conf –error-log-path=/data/nginx/log/error.log –http-log-path=/data/nginx/log/access.l
2021-09-28 14:23:53 126
原创 redis
redis-5.0.5 源码 安装[root@N1 src]# pwd/usr/local/src[root@N1 src]# wget http://download.redis.io/releases/redis-5.0.3.tar.gz[root@N1 redis-5.0.3]# yum install gcc gcc-c++ make[root@N1 ~]# groupadd -g 2020 redis &&useradd -g redis -u 2020 redi
2021-09-28 14:20:45 74
原创 nginx
生产安装nginx 1.18user nginx;worker_processes 1;error_log /data/nginx/log/error.log warn;pid /data/nginx/pid/nginx.pid;#daemon off; events { worker_connections 1024;}http { include /data/nginx/etc/mime.types; default_t
2021-09-28 14:19:48 132
原创 es 7 jvm内存设置
elasticsearch 7 jvm内存设置[Elasticsearch Guide 7.14] » Set up Elasticsearch » Configuring Elasticsearch » Important官网关于堆内存设置的提示 :https://www.elastic.co/guide/en/elasticsearch/reference/current/important-settings.html#heap-size-settingsHeap size setting
2021-08-11 15:54:12 1677
原创 openssh-8.4_rpm升级
centos7.6 openssh 7.4 升级到8.4 (rpm 包方式升级)一、安全备份为了防止升级过程中升级失败 ,配置telnet 协议也可以连接linuxyum install telnet-server xinetd -ysystemctl enable xinetd telnet.socket这是因为默认情况下,centos 系统是不允许 root 用户通过 telnet 方式远程登录系统的。如果要使 root 用户可以直接登录,需将以下内容添加到 /etc/secu
2021-02-26 10:31:06 644
原创 Tomcat 普通账号启动
Tomcat 普通账号启动1.创建tomcat 用户 (Ubuntu)groupadd -g 2020 tomcatuseradd -m -u 2020 -s /bin/bash -g tomcat tomcat2. 授权chown tomcat.tomcat /apps/tomcat/ /usr/local/jdk/ -R3. tomcat 启动脚本 对于java 应用而说 ,启动容易 ,停止偶尔会卡死,往往需要通过杀进程的方式来实现。 为了方便以后的CI/CD 可以
2020-08-18 16:06:46 867
原创 docker 数据管理
文章目录docker 数据管理容器数据保存的过程docker 数据类型什么是数据卷(data volume):1.主机目录映射到容器内部1.1 创建 APP 目录并生成 web 页面1.2 启动容器并验证数据1.3 进入到容器内测试写入数据1.4 删除容器时2.文件挂载2.1创建容器并挂载配置文件2.2 验证参数生效2.3 进入容器测试文件读写2.4 如何一次挂载多个目录3.数据卷总结数据卷容器1.先启动一个容器,并挂载宿主机的数据目录:2.启动端容器 Client3.当卷server发生故障时,客户端容器
2020-07-31 12:49:15 226
原创 jdk 旧版本下载(jdk1.8.0_11)
jdk 旧版本下载(jdk1.8.0_11)本次安装以旧版本为例(jdk1.8.0_11) ,本次安装的时间为2020/7/22。由于oracle 官网界面可能会随时更新,,找到下载的流程,远比连接更重要jdk 旧版版本的安装关键点是 找到 archive归档链接1.打开Oracle官网https://www.oracle.com/index.html2.在官网首页,产品的下拉列表中找到java3.点击 java 下载4.在下载界面找到归档(历史版本)链接或者直接点击htt
2020-07-22 11:28:27 5598
原创 harbor 无法删除/停止 任务规则:“have pending/running/retrying status”
harbor 无法删除/停止 任务规则:have pending/running/retrying status在1.7.5版本中遇到。应该是版本buggithub上已经有多个用户反馈,据说在1.8 版本修复。处理方法:在PostgreSQL数据库中直接将所有“僵尸”任务的状态标记为“错误”,然后重试删除操作。最好升级到harbor最新稳定版 来解决参考:https://github.com/goharbor/harbor/issues/7057...
2020-06-27 17:53:41 1123
原创 harbor 2.0 的安装与使用
harbor 2.0 的二进制安装与复制一、安装过程1.1 环境依赖硬件配置资源最低配置推荐配置CPU2 CPU4 CPU内存4 GB8 GB磁盘40 GB160 GB需要打开的端口,可以在配置文件中修改PortProtocolDescription443HTTPSharbor ui 和api 加密访问的端口4443HTTPS用于docker DCT 服务(通过tag 进行镜像验证). 仅当
2020-06-27 13:28:57 2209
原创 docker 分布式仓库harbor
docker 分布式仓库harbor Harbor 是一个用于存储和分发Docker 镜像的企业级Registry 服务器,由vmware开源,其通过添加一些企业必需的功能特性,例如安全、标识和管理等,扩展了开源 Docker Distribution。作为一个企业级私有 Registry 服务器,Harbor 提供了更好的性能和安全。提升用户使用 Registry 构建和运行环境传输镜像的效率。Harbor 支持安装在多个Registry 节点的镜像资源复制,镜像全部保存在私有Registry 中,
2020-06-27 13:27:47 1165
原创 Docker 单机仓库 Docker Registry
文章目录Docker 仓库之单机 Docker Registry1. 下载 docker registry 镜像2. 搭建单机仓库2.1 创建一个授权使用目录2.2 创建一个用户并生成密码2.3 验证用户名密码2.4 启动docker registry2.5 验证端口和容器2.6 测试登录仓库2.7 拉取和上传镜像测试2.8 查看仓库里的所有镜像2.9 查看镜像的版本3.仓库中的镜像删除3.1 查询具体镜像的digest,用于后面的删除镜像清单3.2 根据具体镜像的digest删除清单3.3 垃圾回收
2020-05-24 01:17:06 558
原创 HAProxy安装
HAProxy安装1. apt 安装ubuntu可以使用apt 安装,默认版本较低root@z1:~# apt install haproxyroot@z1:~# haproxy -vHA-Proxy version 1.8.8-1ubuntu0.9 2019/12/02Copyright 2000-2018 Willy Tarreau <willy@haproxy.o...
2020-05-23 09:22:00 781
原创 docker制作 haproxy 镜像
docker制作 haproxy 镜像一、准备haproxy 安装包root@z2:/opt/dockerfile/web# mkdir haproxyroot@z2:/opt/dockerfile/web# cd haproxy/root@z2:/opt/dockerfile/web/haproxy# wget https://www.haproxy.org/download/2.0/src/haproxy-2.0.5.tar.gz二、准备haproxy 配置文件listen sta
2020-05-23 00:21:31 590
openssh-8.4p1-1.el7.x86_64.rpm tar.gz
2021-02-26
jenkins_2.235.4_plugins.tar.gz
2020-08-16
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人