zoukankan      html  css  js  c++  java
  • k8s源码分析准备工作

    本文原始地址:https://farmer-hutao.github.io/k8s-source-code-analysis/

    项目github地址:https://github.com/farmer-hutao/k8s-source-code-analysis

    源码准备

    1. 环境准备

    操作系统:我们使用Linux作为k8s源码分析和调试环境,fedora、centos、ubuntu都行,我这里使用fedora;

    golang相关:

    • GOROOT=/usr/local/lib/golang
    • GOPATH=/root/go
    • go version go1.10.3 linux/amd64

    2. 源码下载

    mkdir -p /root/go/src/k8s.io
    cd /root/go/src/k8s.io/
    git clone https://github.com/kubernetes/kubernetes.git
    

    下载后本地目录:

    1550208476439

    3. 源码编译

    我们先看一下几个主要的目录:

    目录名用途
    cmd 每个组件代码入口(main函数)
    pkg 各个组件的具体功能实现
    staging 已经分库的项目
    vendor 依赖

    考虑到国内网络环境等因素,我们不使用容器化方式构建。我们尝试在kubernetes项目cmd目录下构建一个组件(执行路径:/root/go/src/k8s.io/kubernetes/cmd/kube-scheduler):

    1550221168405

    这里需要注意一下,如果报依赖错误,找不到k8s.io下的某些项目,就到vendor下看一下软链接是不是都还在,如下:

    1550477991608

    注意到k8s是使用这种方式解决k8s.io下的依赖问题的,如果我们在windows下下载的代码,然后copy到linux下,就很容易遇到这些软链接丢失的情况,导致go找不到依赖,编译失败。

    4. IDE

    我们使用Goland看代码:

    1550328005342

    最后,别忘了在正式研读源码前切换到release-1.13分支~

  • 相关阅读:
    java map的遍历的方法
    .NetTiers使用以及介绍
    Visual Studio使用技巧(转)
    TSQL日期处理相关
    Delphi项目开发和Delphi学习笔记索引
    关于泛型的查找方式
    Delphi语言学习1Program和Unit
    很高兴来到园子里
    Thread.Join()用法的理解
    VS2005 常用快捷键(转)
  • 原文地址:https://www.cnblogs.com/cloudgeek/p/10391864.html
Copyright © 2011-2022 走看看