- 博客(268)
- 资源 (3)
- 收藏
- 关注
原创 kubernetes安全:RBAC,Security Context,PSP,准入控制器
文章目录RBAC 权限控制前言API 对象RBAC只能访问某个 namespace 的普通用户创建用户凭证创建角色创建角色权限绑定测试只能访问某个 namespace 的 ServiceAccount可以全局访问的 ServiceAccountSecurity Context为 Pod 设置 Security Context为容器设置 Security Context设置 Linux Capabilities什么是 Capabilities如何使用 CapabilitiesDocker Container
2022-04-29 12:01:24
4517
2
原创 Go(上):go基础 续
sync包——互斥锁sync是synchronization同步这个词的缩写,所以也会叫做同步包。这里提供了基本同步的操作,比如互斥锁等等。这里除了Once和WaitGroup类型之外,大多数类型都是供低级库例程使用的。更高级别的同步最好通过channel通道和communication通信来完成一、Mutex(互斥锁)通过上一小节,我们知道了在并发程序中,会存在临界资源问题。就是当多个协程来访问共享的数据资源,那么这个共享资源是不安全的。为了解决协程同步的问题我们使用了channel,但是Go语言也
2022-04-28 23:49:31
798
11
原创 Go(上):go基础
文章目录部署go环境编写第一个HelloWordgo命令运行原理,常用命令和参数go rungo buildgo installgo getgo doc安装go的IDE集成开发环境golandvim添加go插件与开发环境优化get或install拉取失败回来补充一条更好的vim-go从部署到使用教学的连接基础语法变量变量定义过程内存分析常量iota关键字基本数据类型数据类型转换运算符关系运算符逻辑运算符位运算符赋值运算符标准输入和输出流程语句if语句switch语句for循环语句for嵌套打印乘法表使用br
2022-04-28 23:03:38
1845
55
原创 kubernetes配置管理:cm,sercret,sa
可变配置管理前面我们学习了一些常用的资源对象的使用,但是单纯依靠这些资源对象,还不足以满足我们的日常需求,一个重要的需求就是应用的配置管理、敏感信息的存储和使用(如:密码、Token 等)、容器运行资源的配置、安全管控、身份认证等等。对于应用的可变配置在 Kubernetes 中是通过一个 ConfigMap 资源对象来实现的,我们知道许多应用经常会有从配置文件、命令行参数或者环境变量中读取一些配置信息的需求,这些配置信息我们肯定不会直接写死到应用程序中去的,比如你一个应用连接一个 redis 服务,下一次
2022-04-25 22:50:51
2905
原创 kubernetes的原生的常规控制器
控制器¶Kubernetes 控制器会监听资源的 创建/更新/删除 事件,并触发 Reconcile 函数作为响应。整个调整过程被称作 “Reconcile Loop”(调谐循环) 或者 “Sync Loop”(同步循环)。Reconcile 是一个使用资源对象的命名空间和资源对象名称来调用的函数,使得资源对象的实际状态与 资源清单中定义的状态保持一致。调用完成后,Reconcile 会将资源对象的状态更新为当前实际状态。我们可以用下面的一段伪代码来表示这个过程:for { desired := g
2022-04-24 22:45:21
1025
原创 Pod~全
文章目录kubernetes简介kubernetes架构kube-apiserverkube-controller-managerkube-schedulerkubeletkube-proxykubectl核心资源对象podLabelNamespaceDeploymentService搭建集群资源清单YAML 文件基本语法格式pod原理pod生命周期pod状态重启策略初始化容器Pod HookPod 健康检查(探针)Pod 资源配置pod进阶使用静态 Pod配置文件Downward API环境变量Volum
2022-04-24 09:02:07
1594
1
原创 docker~全
文章目录前言docker概念部署docker镜像操作容器常规操作运行容器列出容器删除容器:后台运行终止容器进入容器容器改名容器信息查看容器与宿主机间文件传输docker网络容器端口暴露bridge模式自定义模式host模式container模式None 模式数据共享与持久化数据卷挂载主机目录dockerfile定制镜像FROMLABEL 标签RUNWORKDIRADD,COPYCOPYADD 指令EXPOSE 指令构建镜像ENV 指令VOLUME 指令USER 指令CMD 与 ENTRYPOINT 指令CM
2022-04-22 02:07:49
1442
原创 监控学习系列(上):prometheus,grafana,promQL,AlertManager,Thanos背景
文章目录介绍kubernete上部署prometheus开始部署prometheus的webui普通应用与export的监控集群节点、集群自身监控与服务发现设置服务发现容器监控监控api-server监控podkube-state-metrics(deploy副本数,pod状态,pod重启次数)grafana介绍部署grafana部署监控集群的grafana插件PromQLpromQL查询Alertmanager介绍部署Alertmanager报警规则(prometheus中配置)介绍对于 Kubern
2022-04-16 22:00:03
7341
2
原创 linux四剑客(核心基础)与正则表达式
文章目录grepfindawksed正则表达式grepgrep -v "^#" /usr/local/nginx/conf/nginx.conf.default | grep -v "^$"(以$开头)过滤出非注释和非空行-v反向匹配,|后的语句作用过滤空行-a 以文本文件方式搜索-i 忽略大小写-l 查询多文件时只输出包含匹配字符的文件名-c 计算找到的符合行的次数-n 行号-v 反向匹配-h查询多文件时不显示文件名-s 不显示不存在或无匹配文件的错误信息-E grep -E
2022-04-11 00:48:56
846
原创 kubeadm部署kubernetes(docker版)
环境准备:3个节点,centos7,内核3.0设置静态ip和主机名(分别是master,node1,node2):其他两个节点类似(为了方便配置这边使用了mobaX,你也可以使用ansible)域名解析:关闭防火墙和selinux:[root@master ~]# systemctl disable firewalld --nowRemoved symlink /etc/systemd/system/multi-user.target.wants/firewalld.service.R
2022-04-03 14:41:20
2123
2
原创 selector,nodeselector,node和pod亲和性
selector:selector: matchLables: app: nginxselector: matchExpressions: - key: app operator: In values: - nginx ----------selector: matchExpressions: - key: app operator: Exists:(In,NotIn,Exists,DoesNotExist,Gt,Lt)node
2022-03-17 20:14:49
641
1
原创 kube-state-metrics
一开始自己手写yaml,过程中没有注意版本问题。一定要注意版本这是giuhub上官网的目标就是底下的几个yaml
2022-03-12 00:10:18
255
1
原创 记一个堪比rm -rf /的失误
居然在master上kubeadm reset曹,手贱了,还不保存快照,直接init回来,没有使用相关的文件恢复,集群数据全数据化。<快照>
2022-03-09 22:20:26
126
原创 helm的chart包释放出来的release该不该命名
chart包生成release应用时不指定名称就会有个较长随机字符串组成的默认名称,这里有个好处,就是高度的唯一性。如果自己定义名称,release对应的deploy和pod的标签会自动生成一个release=<rekease_name>,这是如果有服务正好是通过这个标签来绑定pod的,就会有问题了,所以不建议自定义release的名称,一定要定义话考虑命名的唯一性。附:release对应的deploy名称就是release_name...
2022-03-08 19:30:35
498
1
原创 externalTrafficPolicy
获取实际客户端地址,可以在yaml中设置externalTrafficPolicy(nginx日志有关)但是观察流量发现,这时候按节点来进行负载而不是pod,负载均衡效果不好,所以可以对pod中/etc/nginx/nginx.conf中使用$http_x_forwarded_for来获取实际客户端地址附:pod是创建好了再调度,pod是逻辑概念,实际上是在调度后的节点上下载镜像创建容器...
2022-03-07 21:23:46
2273
原创 api监听
api-server监听资源,其实就是监听资源的http访问方式,所以其中有一种判断前往api-server的请求是否合法的方式就是http认证,也就是验证ca证书。私钥key->证书请求文件csr->kubernetes的ca签名的自签名证书kubernetes一般支持普通用户和sa,其中sa可以有kubernetes直接管理sa的secret挂载到pod中的目录下一般有个ca.crt。...
2022-03-04 18:10:07
487
原创 hpa的target为unknown
hpa对应的下层RS或Deployment的pod模板下de1container设置要写上requests和limits的配置,最重要的,控制器不要使用通用标签,着点很容易报错hpa需要metrics server获取的数据来计算,而这些对象间的匹配底层应该就是通过标签来匹配,不是简单的在hpa配置文件中指定控制器就可以(没有深究,记录个坑)hpa其实一般,建议使用别的方案...
2022-03-03 13:51:01
449
3
原创 manifest-url部署静态pod
rpm -ql kubelet:/etc/sysconfig/kubeletsystemctl restart kubelet
2022-03-01 11:53:39
307
原创 静态pod设置需要kubelet的配置文件路径
rpm -ql kubelet建议用systenctl status kubelet(部署情况多样,这个看准确点)进入配置文件查看:配置文件部署静态pod,默认kubeadm方式配置文件路径/etc/kubernetes/manifests
2022-03-01 10:47:27
767
2
原创 docker的tag的注意
一:docker tag如果心得镜像你不指定版本会是默认的latest二:docker tag官方解释是硬链接往往会联想到文件系统的硬链接,也就是node和block的指定关系,按照文件系统的硬链接的特性是原链接删除后硬链接正常使用,但是实操发现,这在容器中是不一样的比如有两个镜像,一个原镜像,一个是硬链接生成的镜像,都可以正常使用当docker rmi删除原镜像后,硬链接的镜像无法正常使用,就连删除都要用docker rmi -f,与常规的硬链接理解不同。所以最好将tag理解成打标签。
2022-01-05 17:26:30
918
原创 记一个由于改docker引起的kubernetes的错误
刚开始装docker时,根目录是默认的,/var/lib/docker,主机用的东西越来越多就在/etc/docker/daemon.json下用graph指定新的目录来存放docker数据,这是之前用的好好的kubernetes直接报错了,问题大概定位于其中的使用中的容器,将docker跟目录更改回来错误解除猜测:将原本的跟目录数据移到新目录下或许也能解决问题对于一个使用中的结构,底下的部署,在未详细理解之前不要轻易改动...
2022-01-03 22:45:48
426
原创 prometheus安装与开启并设置开机自启
1.下载对应版本的promethues压缩包(二进制包)复制链接地址用wget下载下来2.tar -x -f解包,会得到一个对应的目录,将该目录移动或拷贝到/opt/prometheus下,/opt/下没有这个目录可以自己建立3.启动,prometheus的启动需要yaml配置文件,该目录下,执行命令 nohup ./prometheus --config.file=prometheus.yml >/dev/null 2>&1 &4.这是常规配置:cat prom
2022-01-02 00:00:27
3447
原创 ls+grep+|xargs rm删除文件注意的地方
平时用|xargs和rm一块删文件不多,今天用了一下,发现一个问题,就是|xargs处理后传递给rm的数据我觉得应该是一行数据,也就是说不能分行如ls -l | grep -v ‘serverfile.*’ | xargs rm -rf,错误正确的写法要去掉参数-l...
2021-12-27 18:04:20
1719
原创 vim多行缩进
v进入可视化,选择相应的行,然后shift+>或<即可缩进或缩出注意,有的朋友喜欢用ctrl+v进入可视化然后进行进行缩进操作,但往往要留意空格,用这个方式操作多行效果不太满意
2021-12-07 12:55:09
1549
原创 ./与./*的区别
kubectl apply支持对目录操作,然后**./表示的是当前这个目录,所以可以kubectl apply -f ./**,而./*是表示当前目录下的文件,不能使用与kubectl apply思考:~/ ~/*附:可以kubectl apply -f .这样写
2021-12-01 19:40:14
1184
原创 虚拟机配置文件vmx放置路径问题
虚拟机的配置文件,可以用来开启一台虚拟机,而它的存放路径要注意,不要多个虚拟机文件放在同一个目录下,哪怕是该文件夹下的子目录,同一文件夹下容易有各种奇怪的问题。
2021-12-01 19:12:04
2145
1
原创 hpa做的压力测试
可以使用postman软件进行压测,这里使用ab命令更好如:ab -t 60 -c 1000 http://192.168.160.100:30656/usr/share这里的/usr/share是任意一个文件名,现在的ab命令使用要求有文件路径
2021-11-23 19:07:43
421
原创 关于initcontainer容器执行顺序的一定性带来的克数情况记录
假设我要启动一个pod,里边只运行一个容器(pause容器所以基于这里可先忽略),要运行的容器也就是主容器maincontainer,在这个主容器运行之前会先运行inti容器,比如获取某些目录下的某些文件,而系统处于安全性管理不愿意让主容器获取这些目录和相关文件的权限,但又要使用到这些文件,基于initcontainer初始化容器初始化正常后就关闭了,所以让initcontainer有权限去调用这些文件,这样既能调用到要用的文件有能提高安全性。再举个例子,主容器是nginx,运行前要检测nginx服务器
2021-11-15 23:06:08
2654
原创 初始时创建容器错误,注意尽量不要再次使用kubectl apply
kubectl apply虽说兼并了创建和更新与一身,但是有些场景使用它十分留意如kubectl create -f y.yaml,生成一个pod,但比如由于镜像策略问题创建容器失败,正确修改了yaml文件后,想重新创建,注意了这时候使用apply很容易出错,先delete,再create,才是正确的流程...
2021-11-14 15:32:07
1283
原创 命令行模式和yaml创建Pod的区别
命令行创建pod,要通过创建控制起来实现pod的创建如:kubectl run nginx --image=nginx:1.17.1 -n dev --port=80注意这里的nginx是控制器的名称而yaml不同,yaml可以直接创建个pod,即再kind中设置为pod
2021-11-13 08:25:58
2361
1
原创 记录一个关闭vm进程后重启虚拟机连不上的问题
ping本机没问题ping同网段的和百度不行问题就定位在硬件上,网卡网上查了资料,主要是重启vm后NAT和DHCP一般不会自动重启,任务管理看一下果然没开启这两个服务那我就找到这两个服务的可执行文件,但是发现就算用windows页启动不了这两个程序。好的那换个法子启动,去vm中编辑虚拟网络我这里本身用的是NAT网卡,那我就从它入手,点击更改配置然后确定,发现并没有启动以上那两个服务,好那就将网卡删了,重新加入NAT网卡(这里留意下网段的配置如192.168.160.100,还有勾上NAT).
2021-11-12 21:09:09
671
原创 记录一个错误,master端kubectl显示was refused
master断电后重启,显示上边的错误,然后连同多有node节点重启一次,发现在此1使用kubectl不报错了,问题莫名其妙解决,所以暂时没有深入研究
2021-11-12 19:32:46
330
原创 kube-flannel.yml拉去flannel的镜像文件问题
wget https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.yml下载下来官方这个文件,注意下载时访问这个网站可能有问题,在本专栏中有解决这个问题的文章,日期与本博文相近安装网上的大多数建议将yml文件中的quay,io改成quay-mirror.qiniu.com然后kubectl apply -f kubr-flannel.yml可以通过kubectl get nodes 和
2021-11-06 10:50:42
1550
原创 nf_conntrack_ipv4模块安装(解决找不到的错误问题)
安装kubernetes是,主要修改内核参数,要加入nf_conntrack_ipv4,有的教程跟着做会显示找不到nf_conntrack_ipv4,网上有人说因为nf_conntrack_ipv4被nf_conntrack替换了,所以装不了,其实不然,执行那个修改模块的脚本,注意脚本名后缀的是.modules,如/etc/sysconfig/modules/ipvs.modules然后再sysctl -p,请测没有错误...
2021-11-04 22:13:46
3841
1
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅