吐核|Core Dump

笔记 随想 吐槽


  • 首页

  • 关于

  • 标签

  • 分类

  • 归档

k8s上abac功能实践

发表于 2018-12-17 | 更新于 2019-03-11

k8s提供了2种方式用来权限控制,abac和rbac,abac是基于一堆属性(attribute)描述成的策略(policy)来做的限制。
比如限制某个用户只能对某个namespace下的资源操作,就可以写成类似下面的描述

1
{"apiVersion": "abac.authorization.kubernetes.io/v1beta1", "kind": "Policy", "spec": {"user": "alice", "namespace": "somenamespace", "resource": "*", "apiGroup": "*"}}

可以看到其实就是user namespace resource apiGroup 等几个选项的排列组合

要启用ABAC需要修改apiserver的启动参数 加上–authorization-mode=ABAC 和 –authorization-policy-file=SOME_FILENAME,这里的SOME_FILENAME 就是个填写了类似以上json的文件,可以填多行,来做多个组合限制,点这里看一个具体的文件列子

阅读全文 »

service-account-issue

发表于 2018-10-08 | 更新于 2019-03-11

在配合使用高版本k8s和低版本k8s的时候遇到了serviceAccount报错的问题 No API token found for service account "default", retry after the token is automatically created and added to the service account

大概看了眼代码,k8s的apiserver在创建pod的时候会看这个pod有没有自己指定serviceaccount这个项目,如果没有的话就用默认的default serviceaccount ,然后mount到pod的/var/run/secrets/kubernetes.io/serviceaccount

其中有个步骤是去找这个serviceAccount的secret信息,但是很不幸的是我用的是高版本的apiserver和低版本的controller,没有自动创建这个出来。而且其实我也用不到这个功能

阅读全文 »

ubuntu18.04上配置anyconnect的server

发表于 2018-07-23 | 更新于 2019-03-11

ubuntu上anyconnect的server实现是openconnect server(ocserv)

我们只需要简单的

1
sudo apt install ocserv

再简单的修改下/etc/ocserv/ocserv.conf
在route部分添加你连接上后需要走vpn的路由就行了
如果需要全部流量都在vpn 设置成route = 0.0.0.0/0.0.0.0

比如我只希望公司的网络走vpn 设置成route = 10.0.0.0/255.0.0.0

tensorflow-on-kubeflow

发表于 2018-06-29 | 更新于 2019-03-11

需要先弄好kubeflow 主要是tf-operator模块,其他模块都不重要

先训练

阅读全文 »

CKA考试题详解

发表于 2018-06-26 | 更新于 2019-03-11

CKA考试题真题详解

已经通过了CKA认证,这里大概讲下我遇到的考试题怎么解

  • 创建一个符合要求的pod

具体内容不记得了,主要是得找到一个简单的yaml文件改改就好

  • ß看某个标签使用cpu最高的pod

Kubectl top pod -l xxx标签

  • 创建secret,并且创建2个pod 1个pod mount成文件,一个用环境变量

https://kubernetes.io/docs/concepts/configuration/secret/ 从Creating a Secret Manually 开始内容到后面,考题只需要创建一个password字段,mount的路径略有改动,其他和这个页面里面的一样

  • oo给定deployment扩容

https://kubernetes.io/docs/concepts/workloads/controllers/deployment/

直接kubectl scale命令

阅读全文 »

kubernetes cka考试认证相关介绍

发表于 2018-05-25 | 更新于 2019-03-11

CKA考试相关内容

在3小时内用命令行进行排障,一共有24题(都是应用题,没有选择填空题)

需要提前准备的东西

  1. 官方认证证件:需要有照片和Latin字母写的全名(所以看起来可能得是护照,caicloud的人用的是护照)
  2. 考试为在线考试,有监考官,电脑需要有摄像头和麦克风,监考官会和你沟通,让你展示护照之类
  3. 一个没有其他人的空房间,空桌子,不能带手机,不能有书本,监考官会让你拿着电脑展示你周围的所有环境

检查是否满足硬件要求

  1. 使用Chrome浏览器访问https://www.examslocal.com/ScheduleExam/Home/CompatibilityCheck 选择"Linux Foundation" as the Exam Sponsor and "CKA" as the Exam根据提示安装一个chrome插件(实测有项网速的检查一直不过,翻墙就好了,所以可能需要有个稳定的翻墙工具)

考试中能查阅的资源

阅读全文 »

go语言中判断一个文件是否被flock上了

发表于 2018-01-20 | 更新于 2019-03-11

首先需要知道的是linux存在强制锁(mandatory lock)和劝告锁(advisory lock)。劝告锁是一种协同工作的锁。对于这种锁来说,内核只提供加锁以及检测文件是否已经加锁的手段,但是内核并不参与锁的控制和协调,所以只是个约定,对文件打个标签的感觉,具体遵守不遵守看自己;强制锁是一种内核强制采用的文件锁,每当有系统调用 open()、read() 以及write() 发生的时候,内核都要检查并确保这些系统调用不会违反在所访问文件上加的强制锁约束。也就是说,如果有进程不遵守游戏规则,硬要往加了锁的文件中写入内容,内核就会加以阻拦。更多参考这里

我这里利用文件锁来做等待的事情,即前面有一个进程跑着呢,后面这个干同样事情的进程就得等着,并且前一个进程无论是正常退出还是异常退出的时候锁必须释放掉

看了下,用flock加LOCK_EX排它锁或者用fnctl加F_SETLKW也可以,其实都是相当于对文件加个标记(注意这句话)

阅读全文 »

升级kubelet到1.7后PostStartHook的错误消息丢失问题追查

发表于 2017-11-08 | 更新于 2019-03-11

由于centos7 默认的3.10内核在cgroup使用cpu limit并且压力比较大的时候有kernal panic的 bug , 看了下是4.2某个版本后修复了这个问题,所以干脆我们升级了系统的内核到mainline版本4.13, 带来的问题是需要升kubelet到1.7(我们用的是1.7.8这个版本),注意升级kubelet最好机器上没有容器的情况下升级如果可能直接重装就好,人工升级的话需要自行创建/sys/fs/cgroup/rdma/kubepods 目录(这个也是查代码查了半天发现的具体就不说了)

由于我们的业务逻辑上,容器内的服务启动其实是通过PostStartHook实现的,所以非常依赖相关的Event日志来排查问题,结果发现升级到1.7.8版本后,event中的message字段变空的,并且kubelet日志中也没有相关的信息,猜测是版本变动,代码上有所变化所以就去追了下

阅读全文 »

2017年中总结

发表于 2017-08-16 | 更新于 2019-03-11
Welcome to my blog, enter password to read.
阅读全文 »

php后期静态绑定

发表于 2017-02-22 | 更新于 2019-03-11

在看Yii2代码的时候,有这么一段

1
2
3
4
5
6
7
8
9
10
11
if (isset(static::$classMap[$className])) {
$classFile = static::$classMap[$className];
if ($classFile[0] === '@') {
$classFile = static::getAlias($classFile);
}
} elseif (strpos($className, '\\') !== false) {
$classFile = static::getAlias('@' . str_replace('\\', '/', $className) . '.php', false);
if ($classFile === false || !is_file($classFile)) {
return;
}
}

阅读全文 »
1234…6

lovejoy

今天不开心

56 日志
12 分类
13 标签
Github Twitter
© 2019 lovejoy
由 Hexo 强力驱动 v3.8.0
|
主题 – NexT.Pisces v7.0.1