4年前 回复了 yahoo17 创建的主题› Summer2020 › Summer2020-Casbin-Kubenetes |
将集群配到云服器上
对 casbin 进行封装,使得可以动态更新 casbin 版本
写了 webhook 服务器,可以接受监听 8888 端口
4年前 回复了 yahoo17 创建的主题› Summer2020 › Summer2020-Casbin-Kubenetes |
学习 Kubernetes 的 Kubernetes Admission Controllers 的两个中的 Mutating Webhook
确定架构设计大概就是 建一个 mutating webhook 对象 通过这个来拦截 直接 kubectl 直接到 apiserver 的 请求, 并给予修改, 来决定是否改成 deny
使用 patch 方式来修改
4年前 回复了 yahoo17 创建的主题› Summer2020 › Summer2020-Casbin-Kubenetes |
开始设计以 Role 为核心的控制访问
学习 rego query langanuage
在本地调试通过 casbin
Build up the necessary environment.
Practice OPA and Casbin.
4年前 回复了 yahoo17 创建的主题› Summer2020 › Summer2020-Casbin-Kubenetes |
1.k8s 的网络模型
开始设计以 Role 为核心的控制访问
学习 rego query langanuage
学习 Kubernetes 的 Kubernetes Admission Controllers 的两个中的 Mutating Webhook
要想看懂 OPA 首先得把 OPA
玩熟练了
相关的文档读了
才看得到他代码的思路
现在 OPA 好像是 做了个 gatekeeper
然后 plain opa 就是像你说的黑盒,
gatekeeper 和我们要做的东西重叠度很高
然后 gatekeeper 的原理大概就是 建一个 mutating webhook 对象 通过这个来拦截 直接 kubectl 直接到 apiserver 的 请求,并给予修改,来决定是否改成 deny
Build up the necessary environment.
Practice OPA and Casbin.
4年前 回复了 yahoo17 创建的主题› Summer2020 › Summer2020-Casbin-Kubenetes |
Look at the code of similar competitive products
prepare to design casbin
4年前 回复了 yahoo17 创建的主题› Summer2020 › Summer2020-Casbin-Kubenetes |
# 在 master 节点和 worker 节点都要执行
cat /etc/redhat-release
# 此处 hostname 的输出将会是该机器在 Kubernetes 集群中的节点名字
# 不能使用 localhost 作为节点的名字
hostname
修改 hostname
如果您需要修改 hostname,可执行如下指令:
# 修改 hostname
hostnamectl set-hostname your-new-host-name
# 查看修改结果
hostnamectl status
# 设置 hostname 解析
echo "127.0.0.1 $(hostname)">> /etc/hosts
# 请使用 lscpu 命令,核对 CPU 信息
# Architecture: x86_64 本安装文档不支持 arm 架构
# CPU (s): 2 CPU 内核数量不能低于 2
lscpu
1. 首先 dhclient 通一下网络
2.vim/etc/sysconfig/network-scripts-ifcfg-ens33
3.systemctl restart network.service
宿主机 ip
10.2.32.100
掩码
255.255.248.0
网关
10.2.32.1
master 结点
ip
10.2.34.9
worker 节点
ip
10.2.34.73
# 在 master 节点和 worker 节点都要执行
# 最后一个参数 1.18.5 用于指定 kubenetes 版本,支持所有 1.18.x 版本的安装
# 腾讯云 docker hub 镜像
# export REGISTRY_MIRROR="https://mirror.ccs.tencentyun.com"
# DaoCloud 镜像
# export REGISTRY_MIRROR="http://f1361db2.m.daocloud.io"
# 华为云镜像
# export REGISTRY_MIRROR="https://05f073ad3c0010ea0f4bc00b7105ec20.mirror.swr.myhuaweicloud.com"
# 阿里云 docker hub 镜像
export REGISTRY_MIRROR=https://registry.cn-hangzhou.aliyuncs.com
curl -sSL https://kuboard.cn/install-script/v1.18.x/install_kubelet.sh | sh -s 1.18.5
初始化 master 节点
关于初始化时用到的环境变量
APISERVER_NAME 不能是 master 的 hostname
APISERVER_NAME 必须全为小写字母、数字、小数点,不能包含减号
POD_SUBNET 所使用的网段不能与 master 节点 /worker 节点 所在的网段重叠。该字段的取值为一个 CIDR 值,如果您对 CIDR 这个概念还不熟悉,请仍然执行 export POD_SUBNET=10.100.0.1/16 命令,不做修改
请将脚本最后的 1.18.5 替换成您需要的版本号, 脚本中间的 v1.18.x 不要替换
# 只在 master 节点执行
# 替换 x.x.x.x 为 master 节点实际 IP(请使用内网 IP)
# export 命令只在当前 shell 会话中有效,开启新的 shell 窗口后,如果要继续安装过程,请重新执行此处的 export 命令
export MASTER_IP=x.x.x.x
# 替换 apiserver.demo 为 您想要的 dnsName
export APISERVER_NAME=apiserver.demo
# Kubernetes 容器组所在的网段,该网段安装完成后,由 kubernetes 创建,事先并不存在于您的物理网络中
export POD_SUBNET=10.100.0.1/16
echo "${MASTER_IP} ${APISERVER_NAME}">> /etc/hosts
curl -sSL https://kuboard.cn/install-script/v1.18.x/init_master.sh | sh -s 1.18.5
初始化 worker
将 worker join
Build up the necessary cluster environment and deploy a nginx service on the cluster
4年前 回复了 yahoo17 创建的主题› Summer2020 › Summer2020-Casbin-Kubenetes |
Before get started, I think we should have further knowledge of distributed system, so I go to learn the MIT-6.824 . Only after I have a solid foundation can I go further.
4年前 回复了 yahoo17 创建的主题› Summer2020 › Summer2020-Casbin-Kubenetes |
Student: Yan hao(@[yahoo17](https://github.com/yahoo17)) ) Mentors: Zhang helong(@[BetaCat0](https://github.com/BetaCat0) )
IM Channel:308533841(QQ) Weekly reports will be appended as replies by the student