Casbin = way to authorization
A place for Casbin developers and users
现在注册
已注册用户请  登录
主题样式选择
默认主题样式 ✅
知乎主题样式 
yahoo17
Casnode  ›  Summer2020

Summer2020-Casbin-Kubenetes

  •  
  •  
    yahoo17 · 4年前 · 200 次点击 
    这是一个创建于 1642 天前的主题,其中的信息可能已经有所发展或是发生改变。
    200 次点击  ∙  1 人收藏  
      Tweet Weibo 忽略主题 
    11 条回复   2020-08-30 14:43:11 +08:00
    yahoo17
    yahoo174年前

    Week 0

    1. Summer2020 Project: https://isrc.iscas.ac.cn/summer2020/#/organisations/casbin (ID: 2008417)

    https://user-images.githubusercontent.com/55846951/86561910-4f04c880-bf94-11ea-8527-377daf496879.png

    1. 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

    yahoo17
    yahoo174年前

    Week 1 (June 27 - July 5)

    Weekly Summary

    1. Studied the fundamental knowledge about Golang(Actually I am moving from C++ to Golang, so I am not very familiar with everything in Golang).
    2. Still setting up the environment (including the k8s and Ubuntu for service test).
    3. Conducted further investigation on other authorization library.
    4. Read the paper

    Before Coding

    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.

    Next week

    1. Build up the necessary environment.
    2. Practice k8s and docker.
    3. Read the document provided by k8s.
    4. Practice Golang.
    yahoo17
    yahoo174年前

    Week 2 (June 6 - July 12)

    Weekly Summary

    1. Studied the fundamental knowledge about Kubenetes, including Pods, Service ,Kubenetes APIServer ,Kubenetes Object , Node, ReplicaSet
    2. build up two centos 7.8 server

    k8s 环境配置

    1. 改用户名 检查 centos /hostname
    # 在 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. 配置网络
    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
    1. 安装 docker docker nfs-utils kubectl /kubeadm/kubelet
    # 在 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
    1. 初始化 master
    初始化 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
    
     
    1. 初始化 worker

    2. 将 worker join

    Next week

    1. Build up the necessary cluster environment and deploy a nginx service on the cluster

    yahoo17
    yahoo174年前

    Week 3 (July 13- July 12)

    Weekly Summary

    1. Studied the fundamental knowledge about kubenetes
    2. build up a kubenetes cluster with single master node and worker node
    3. deploy nginx service on the cluster and aPublish, scale, expand, roll update applications.
    4. load balancing achieve by kubenetes services

    Next week

    1. Look at the code of similar competitive products

    2. prepare to design casbin

    hsluoyz
    hsluoyz4年前

    @yahoo17 great to see this high-quality post! I even saw you fixed the link to GitHub users :)

    Go ahead and make even bigger contribution and impact!

    yahoo17
    yahoo174年前

    Week 4 (July 20 - July 27)

    Weekly Summary

    7/21

    1.k8s 的网络模型

    1. 跑通了 github.com/client-go/ 的 example 利用 client-go 与 apiserver 进行通信

    7/22

    1. 开始设计以 Role 为核心的控制访问

    2. 学习 rego query langanuage

    7/23

    1. 学习 Kubernetes 的 Kubernetes Admission Controllers 的两个中的 Mutating Webhook

    要想看懂 OPA 首先得把 OPA

    玩熟练了

    相关的文档读了

    才看得到他代码的思路

    现在 OPA 好像是 做了个 gatekeeper

    然后 plain opa 就是像你说的黑盒,

    gatekeeper 和我们要做的东西重叠度很高

    然后 gatekeeper 的原理大概就是 建一个 mutating webhook 对象 通过这个来拦截 直接 kubectl 直接到 apiserver 的 请求,并给予修改,来决定是否改成 deny

    1. 使用 patch 方式来修改

    Next week

    1. Build up the necessary environment.

    2. Practice OPA and Casbin.

    @yahoo17 @yahoo17

    yahoo17
    yahoo174年前

    Week 5 (July 28 - August 4)

    Weekly Summary

    1. 开始设计以 Role 为核心的控制访问

    2. 学习 rego query langanuage

    3. 在本地调试通过 casbin

    Next week

    1. Build up the necessary environment.

    2. Practice OPA and Casbin.

    yahoo17
    yahoo174年前

    Week 6 (August 5 - August 12)

    Weekly Summary

    1. 学习 Kubernetes 的 Kubernetes Admission Controllers 的两个中的 Mutating Webhook

    2. 确定架构设计大概就是 建一个 mutating webhook 对象 通过这个来拦截 直接 kubectl 直接到 apiserver 的 请求, 并给予修改, 来决定是否改成 deny

    3. 使用 patch 方式来修改

    yahoo17
    yahoo174年前

    Week 7 (August 13 - August 19)

    Weekly Summary

    1. 将集群配到云服器上

    2. 对 casbin 进行封装,使得可以动态更新 casbin 版本

    3. 写了 webhook 服务器,可以接受监听 8888 端口

    hsluoyz
    hsluoyz4年前

    @yahoo17 where's the code?

    关于   ·   FAQ   ·   API   ·   我们的愿景   ·   广告投放   ·   感谢   ·   实用小工具   ·   40 人在线   最高记录 40   ·     选择语言  ·     选择编辑器
    创意工作者们的社区
    World is powered by code
    VERSION: 2c477f2 · 7ms · UTC 13:57 · PVG 21:57 · LAX 06:57 · JFK 09:57
    ♥ Do have faith in what you're doing.