k8s源码编译运行

2023-05-16

本文参考视频:https://www.bilibili.com/video/BV1WK41137JA?from=search&seid=10758236638727752345

0、一定要用root用户

sudo su

1、配置两个环境变量

export GOROOT=/usr/local/go
export GOPATH=/home/zhouyy/go

2、下载k8s源码(kubernetes文件夹)

将kubernetes文件夹放在GOPATH/src/k8s.io中。即源码目录为:GOPATH/src/k8s.io/kubernetes

3、编译

①全部编译

KUBE_BUILD_PLATFORMS=linux/amd64 make all GOFLAGS=-v GOGCFLAGS="-N -l"

编译的正确输出就是一堆目录,都是k8s.io/kubernetes/开头的。

编译完成后,在源码根目录会生成一个_output文件夹。

②单独编译一个组件

例如,如下命令是单独编译kubelet的:

KUBE_BUILD_PLATFORMS=linux/amd64 make all WHAT=cmd/kubelet GOFLAGS=-v GOGCFLAGS="-N -l"

编译的正确输出也是一堆目录,也都是k8s.io/kubernetes/开头的,但大多和kubelet有关。

4、运行

①安装etcd

cd 源码目录(e.g. /home/zhouyy/go/src/k8s.io/kubernetes)
./hack/install-etcd.sh

正确输出如下:

Downloading https://github.com/coreos/etcd/releases/download/v3.4.13/etcd-v3.4.13-linux-amd64.tar.gz succeed
etcd v3.4.13 installed. To use:
export PATH="/home/zhouyy/go/src/k8s.io/kubernetes/third_party/etcd:${PATH}"

②配置etcd

export PATH="/home/zhouyy/go/src/k8s.io/kubernetes/third_party/etcd:${PATH}"

③本地运行k8s

./hack/local-up-cluster.sh -O

正确输出如下:

skipped the build.
Kubelet cgroup driver defaulted to use: cgroupfs
API SERVER secure port is free, proceeding...
Detected host and ready to start services.  Doing some housekeeping first...
Using GO_OUT /home/zhouyy/go/src/k8s.io/kubernetes/_output/bin
Starting services now!
Starting etcd
etcd --advertise-client-urls http://127.0.0.1:2379 --data-dir /tmp/tmp.jnCu80or9Q --listen-client-urls http://127.0.0.1:2379 --log-level=debug > "/tmp/etcd.log" 2>/dev/null
Waiting for etcd to come up.
+++ [0525 21:28:32] On try 2, etcd: : {"health":"true"}
{"header":{"cluster_id":"14841639068965178418","member_id":"10276657743932975437","revision":"2","raft_term":"2"}}Generating a 2048 bit RSA private key
..................................................+++
.........................................................+++
writing new private key to '/var/run/kubernetes/server-ca.key'
-----
Generating a 2048 bit RSA private key
...................+++
...........................+++
writing new private key to '/var/run/kubernetes/client-ca.key'
-----
Generating a 2048 bit RSA private key
.................................................................+++
...............+++
writing new private key to '/var/run/kubernetes/request-header-ca.key'
-----
2021/05/25 21:28:33 [INFO] generate received request
2021/05/25 21:28:33 [INFO] received CSR
2021/05/25 21:28:33 [INFO] generating key: rsa-2048
2021/05/25 21:28:34 [INFO] encoded CSR
2021/05/25 21:28:34 [INFO] signed certificate with serial number 488965894178000384017857859773876165408907751129
2021/05/25 21:28:34 [WARNING] This certificate lacks a "hosts" field. This makes it unsuitable for
websites. For more information see the Baseline Requirements for the Issuance and Management
of Publicly-Trusted Certificates, v.1.1.6, from the CA/Browser Forum (https://cabforum.org);
specifically, section 10.2.3 ("Information Requirements").
2021/05/25 21:28:34 [INFO] generate received request
2021/05/25 21:28:34 [INFO] received CSR
2021/05/25 21:28:34 [INFO] generating key: rsa-2048
2021/05/25 21:28:34 [INFO] encoded CSR
2021/05/25 21:28:34 [INFO] signed certificate with serial number 264885125868708307869469251678582222107145883647
2021/05/25 21:28:34 [WARNING] This certificate lacks a "hosts" field. This makes it unsuitable for
websites. For more information see the Baseline Requirements for the Issuance and Management
of Publicly-Trusted Certificates, v.1.1.6, from the CA/Browser Forum (https://cabforum.org);
specifically, section 10.2.3 ("Information Requirements").
2021/05/25 21:28:34 [INFO] generate received request
2021/05/25 21:28:34 [INFO] received CSR
2021/05/25 21:28:34 [INFO] generating key: rsa-2048
2021/05/25 21:28:34 [INFO] encoded CSR
2021/05/25 21:28:34 [INFO] signed certificate with serial number 713229295879391239071700507064896098180097516242
2021/05/25 21:28:34 [WARNING] This certificate lacks a "hosts" field. This makes it unsuitable for
websites. For more information see the Baseline Requirements for the Issuance and Management
of Publicly-Trusted Certificates, v.1.1.6, from the CA/Browser Forum (https://cabforum.org);
specifically, section 10.2.3 ("Information Requirements").
2021/05/25 21:28:34 [INFO] generate received request
2021/05/25 21:28:34 [INFO] received CSR
2021/05/25 21:28:34 [INFO] generating key: rsa-2048
2021/05/25 21:28:35 [INFO] encoded CSR
2021/05/25 21:28:35 [INFO] signed certificate with serial number 510763777627184932476115002460038910441764334416
2021/05/25 21:28:35 [WARNING] This certificate lacks a "hosts" field. This makes it unsuitable for
websites. For more information see the Baseline Requirements for the Issuance and Management
of Publicly-Trusted Certificates, v.1.1.6, from the CA/Browser Forum (https://cabforum.org);
specifically, section 10.2.3 ("Information Requirements").
2021/05/25 21:28:35 [INFO] generate received request
2021/05/25 21:28:35 [INFO] received CSR
2021/05/25 21:28:35 [INFO] generating key: rsa-2048
2021/05/25 21:28:35 [INFO] encoded CSR
2021/05/25 21:28:35 [INFO] signed certificate with serial number 661523485757561706763732863455924985762901747490
2021/05/25 21:28:35 [WARNING] This certificate lacks a "hosts" field. This makes it unsuitable for
websites. For more information see the Baseline Requirements for the Issuance and Management
of Publicly-Trusted Certificates, v.1.1.6, from the CA/Browser Forum (https://cabforum.org);
specifically, section 10.2.3 ("Information Requirements").
2021/05/25 21:28:35 [INFO] generate received request
2021/05/25 21:28:35 [INFO] received CSR
2021/05/25 21:28:35 [INFO] generating key: rsa-2048
2021/05/25 21:28:35 [INFO] encoded CSR
2021/05/25 21:28:35 [INFO] signed certificate with serial number 579915653002979021520647597197805503410947245438
2021/05/25 21:28:35 [WARNING] This certificate lacks a "hosts" field. This makes it unsuitable for
websites. For more information see the Baseline Requirements for the Issuance and Management
of Publicly-Trusted Certificates, v.1.1.6, from the CA/Browser Forum (https://cabforum.org);
specifically, section 10.2.3 ("Information Requirements").
2021/05/25 21:28:35 [INFO] generate received request
2021/05/25 21:28:35 [INFO] received CSR
2021/05/25 21:28:35 [INFO] generating key: rsa-2048
2021/05/25 21:28:35 [INFO] encoded CSR
2021/05/25 21:28:35 [INFO] signed certificate with serial number 228895886955268244322921412477911227447746451631
2021/05/25 21:28:35 [WARNING] This certificate lacks a "hosts" field. This makes it unsuitable for
websites. For more information see the Baseline Requirements for the Issuance and Management
of Publicly-Trusted Certificates, v.1.1.6, from the CA/Browser Forum (https://cabforum.org);
specifically, section 10.2.3 ("Information Requirements").
2021/05/25 21:28:35 [INFO] generate received request
2021/05/25 21:28:35 [INFO] received CSR
2021/05/25 21:28:35 [INFO] generating key: rsa-2048
2021/05/25 21:28:36 [INFO] encoded CSR
2021/05/25 21:28:36 [INFO] signed certificate with serial number 86511019963440139103134411786308186921305451303
2021/05/25 21:28:36 [WARNING] This certificate lacks a "hosts" field. This makes it unsuitable for
websites. For more information see the Baseline Requirements for the Issuance and Management
of Publicly-Trusted Certificates, v.1.1.6, from the CA/Browser Forum (https://cabforum.org);
specifically, section 10.2.3 ("Information Requirements").
Waiting for apiserver to come up
+++ [0525 21:28:43] On try 5, apiserver: : ok
clusterrolebinding.rbac.authorization.k8s.io/kube-apiserver-kubelet-admin created
clusterrolebinding.rbac.authorization.k8s.io/kubelet-csr created
Cluster "local-up-cluster" set.
use 'kubectl --kubeconfig=/var/run/kubernetes/admin-kube-aggregator.kubeconfig' to use the aggregated API server
service/kube-dns created
serviceaccount/kube-dns created
configmap/kube-dns created
deployment.apps/kube-dns created
Kube-dns addon successfully deployed.
WARNING : The kubelet is configured to not fail even if swap is enabled; production deployments should disable swap.
2021/05/25 21:28:45 [INFO] generate received request
2021/05/25 21:28:45 [INFO] received CSR
2021/05/25 21:28:45 [INFO] generating key: rsa-2048
2021/05/25 21:28:46 [INFO] encoded CSR
2021/05/25 21:28:46 [INFO] signed certificate with serial number 390801525437068033337403497184568707427779072245
2021/05/25 21:28:46 [WARNING] This certificate lacks a "hosts" field. This makes it unsuitable for
websites. For more information see the Baseline Requirements for the Issuance and Management
of Publicly-Trusted Certificates, v.1.1.6, from the CA/Browser Forum (https://cabforum.org);
specifically, section 10.2.3 ("Information Requirements").
kubelet ( 246938 ) is running.
wait kubelet ready
No resources found
No resources found
No resources found
No resources found
No resources found
127.0.0.1   NotReady   <none>   2s    v0.0.0-master+fa5f52ab4bf9be
2021/05/25 21:28:58 [INFO] generate received request
2021/05/25 21:28:58 [INFO] received CSR
2021/05/25 21:28:58 [INFO] generating key: rsa-2048
2021/05/25 21:28:59 [INFO] encoded CSR
2021/05/25 21:28:59 [INFO] signed certificate with serial number 579005183887936821592823305780316233285535027087
2021/05/25 21:28:59 [WARNING] This certificate lacks a "hosts" field. This makes it unsuitable for
websites. For more information see the Baseline Requirements for the Issuance and Management
of Publicly-Trusted Certificates, v.1.1.6, from the CA/Browser Forum (https://cabforum.org);
specifically, section 10.2.3 ("Information Requirements").
Create default storage class for 
storageclass.storage.k8s.io/standard created
Local Kubernetes cluster is running. Press Ctrl-C to shut it down.

Logs:
  /tmp/kube-apiserver.log
  /tmp/kube-controller-manager.log
  
  /tmp/kube-proxy.log
  /tmp/kube-scheduler.log
  /tmp/kubelet.log

To start using your cluster, you can open up another terminal/tab and run:

  export KUBECONFIG=/var/run/kubernetes/admin.kubeconfig
  cluster/kubectl.sh

Alternatively, you can write to the default kubeconfig:

  export KUBERNETES_PROVIDER=local

  cluster/kubectl.sh config set-cluster local --server=https://localhost:6443 --certificate-authority=/var/run/kubernetes/server-ca.crt
  cluster/kubectl.sh config set-credentials myself --client-key=/var/run/kubernetes/client-admin.key --client-certificate=/var/run/kubernetes/client-admin.crt
  cluster/kubectl.sh config set-context local --cluster=local --user=myself
  cluster/kubectl.sh config use-context local
  cluster/kubectl.sh

5、使用本地k8s

安装上一步输出的提示,另外打开一个终端窗口,配置环境变量:

export KUBECONFIG=/var/run/kubernetes/admin.kubeconfig

进入k8s源码目录下的cluster文件夹,里面的kubectl.sh就是kubectl命令了。如下是查看node命令:

./kubectl.sh get node

输出如下:

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

k8s源码编译运行 的相关文章

  • C语言字符串函数strstr的详细解释

    在C语言中 xff0c strstr xff08 xff09 函数是一个字符串处理函数 xff0c 它用于在一个字符串中查找另一个字符串的出现位置 函数原型为 xff1a char strstr const char str1 const
  • C语言字符串函数strcat的详细解释

    在C语言中 xff0c strcat xff08 xff09 函数是一个字符串处理函数 xff0c 它用于将一个字符串连接到另一个字符串的末尾 函数原型 char strcat char dest const char src 该函数接受两
  • C语言字符串函数strerror的详细解释

    在C语言中 xff0c strerror 函数是一个字符串处理函数 xff0c 它用于将错误码转换为相应的错误消息字符串 函数原型为 xff1a char strerror int errnum 该函数接受一个整数参数 errnum xff
  • C语言前缀法解释以及部分应用

    C语言前缀法 xff08 Prefix Sum xff09 也叫前缀和算法 xff0c 是一种用于快速计算数组中前缀和的算法 在计算机程序中 xff0c 前缀和是指一个数组中从第一个元素开始到某个位置的所有元素之和 该算法通过对原数组进行预
  • 人工智能前景

    人工智能AI的未来非常广阔和光明 随着科技的不断发展和普及 xff0c 人工智能已经开始逐渐融入我们生活的方方面面 xff0c 比如智能家居 智能医疗 无人驾驶等等 未来 xff0c 随着更多的应用场景被开拓和挖掘 xff0c 人工智能的应
  • Navicat连接Mysql(Windows环境下)报错提示错误代码1130和1251的解决方法

    目录 1 错误代码11301 1 错误信息1 2 解决方法 2 错误代码12512 1 错误信息2 2 解决方法 使用Navicat连接Mysql报错提示错误代码1130和1251 xff0c 解决方法汇总如下 xff1a 以下均在Wind
  • ELF 哈希算法

    int ELFHash char str int hash 61 0 long x 61 0 while str hash 61 hash lt lt 4 43 str 43 43 if x 61 hash amp 0xF0000000L
  • 用MATLAB写一个自动生成福利彩票双色球号码的程序

    用MATLAB写一个自动生成福利彩票双色球号码的程序 规则 红色球 xff1a 1 33号任选6个 蓝色球 xff1a 1 16号任选1个 red 61 randi 1 33 1 6 disp 39 红色球 39 fprintf 39 c
  • 给虚拟机制作一张“快照”

    什么是快照呢 xff1f 快照就像用一个文件来放在真实文件面前 xff0c 我们看到的是真实文件 xff0c 但是是在这个文件上进行编辑 xff0c 避免了对真实文件的直接影响 快照是我们通过镜像文件对虚拟机做的一个照片 xff0c 可以反
  • VMware提示“驱动器未就绪”的解决办法

    用VMware安装Linux xff0c 每次启动都要提示错误 xff1a 驱动器未就绪 xff0c 点两次取消才能进入 xff0c 虽然不影响使用 xff0c 但是挺烦的 后来终于发现这是软驱的事 解决办法 xff1a 如图 xff0c
  • 基于51单片机智能温度控制器温控系统(毕设课设)

    本设计以AT89C51 单片机为控制的核心 xff0c 硬件上外加温度传感器作为检测室内温度并且采集室内温度数据的工具 xff0c 以及对室内温度自动控制的作用 其中对于温度的自由设定 xff0c 用户可以用按键简单直观来实现 xff0c
  • Ubuntu16.04安装Docker的步骤

    大家好 xff0c 我是加摩斯 xff0c 觉得文章有帮助的小伙伴 xff0c 记得一键三连哟 xff5e 申明 xff1a 原创 xff0c 转载前请与我沟通 Docker是一种容器 xff0c 但它是轻量级的 目前在中国 xff0c 已
  • 【正则表达式】通俗易懂——正则表达式的零宽断言:?=、?<=、?!、?<! 的具体使用区别

    ps xff1a 想吐槽一下 xff0c 什么前瞻 xff0c 后顾 xff0c 负前瞻 xff0c 负后顾 xff0c 小白就想简单了解会用而已 xff0c 为啥网上很多明明很简单的东西非得写的那么 举的例子也那么 xff0c 对小白一点
  • 百度2023暑期实习第一场笔试编程题Java版

    1 题目内容 小红拿到了一个字符串 xff0c 她想知道这个字符串能否通过重新排列组成 Baidu 字符串 xff1f 注 xff1a 必须大小写完全相同 共有 t 组询问 输入描述 第一行输入一个正整数 t xff0c 代表询问次数 接下
  • 记录在UBUNTU上配置torch环境和CUDA,CUDNN安装的一周心酸史

    写在前面 xff1a 安装torch gpu版后是不是以为就可以安安心心进行训练了 xff1f xff01 错错错 xff01 xff01 xff01 经过种种试错 xff0c 了解到服务器上的CUDA不是全局配置的 xff01 需要自行安
  • Python学习笔记整理

    一 random库 计算机不能产生真正的随机数 xff0c 那么伪随机数也就被称为随机数 伪随机数 xff1a 计算机中通过采用梅森旋转算法生成的 xff08 伪 xff09 随机序列元素 python中用于生成伪随机数的函数库是rando
  • FSCE代码阅读和修改

    fsdet modelling roi heads roi heads py allow low quality matches
  • 目标检测笔记整理

    一 基本概念 1 任务背景 2 评价指标 3 数据集 二 传统目标检测方法 1 算法框架 1 区域选取 2 特征提取 3 分类回归 4 NMS 2 典型算法
  • FreeRTOS解析:TCB_t结构体及重要变量说明(Task-1)

    FreeRTOS解析 xff1a TCB t结构体及重要变量说明 xff08 Task 1 xff09 受博客限制 xff0c 如果您想获得更好的阅读体验 xff0c 请前往https github com Nrusher FreeRTOS
  • 深度学习与slam的小小思考

    深度学习与slam的小小思考 好久不发文章了 xff0c 主要是研究的东西因为要发论文 xff0c 所以发表之前很难分享出来 xff0c 加上研一上学期老师安排的工作比较琐碎 xff0c 所以更新的很少 不过研一下可能会好些 xff0c 立

随机推荐

  • IT运维人员必看!超全信息化建设之运维资料

    随着IT建设的不断深入和完善 计算机硬软件系统的运行维护已经成为了各行各业各单位领导和信息服务部门普遍关注和不堪重负的问题 xff0c 据统计 xff0c IT运维服务占到IT部门工作量的80 左右 IT运维普遍存在以下现象 xff1a 1
  • ovn原理与实践

    上篇文章简单介绍了ovs Open Virtual Switch 的原理和使用 xff0c 但是仔细想想 xff0c 单纯的ovs在云计算领域还存在着一些问题 xff0c 例如 xff1a ovs只能做二层转发 xff0c 没有三层的能力
  • 基于51单片机智能电子密码锁电路设计(毕设课设)

    基于AT89C51单片机的简易六位密码锁 输入三次锁定 密码输入错误蜂鸣器和LED灯报警 可以修改密码 资源下载 下载地址如下 xff08 912 xff09 xff1a https docs qq com doc DTlRSd01BZXN
  • CentOS7配置tomcat开机自启动

    文章目录 CentOS7配置tomcat开机自启动创建服务创建软连接刷新配置启动 重启 停止 状态开启自启动 关闭自启动 CentOS7配置tomcat开机自启动 创建服务 在 lib systemd system目录下创建一个脚本文件to
  • Jetson TX2 入门 ——打开摄像头

    Jetson TX2自带有一个板载摄像头 xff0c 当然也可以在TX2上连接usb摄像头和csi摄像头 1 打开板载摄像头 1 xff09 方法一 xff1a 视屏分辨率预览 nvgstcapture 1 0 prev res 61 3
  • 输入一个int型整数,按照从右向左的阅读顺序,返回一个不含重复数字的新的整数。

    package cn itcast test06 public class Test08 方法1 public static int method int num boolean flag 61 num gt 0 true false nu
  • 史上最强,Cas单点登录之服务端搭建

    目录 Cas Server搭建大浪淘沙 xff0c 沉者为金弱水三千 xff0c 只取一瓢 服务端配置介绍最常用的三个配置文件最常用的三个JSP页面 自定义数据源关闭HTTPS协议开启Restful接口1 加入jar包 2 配置web xm
  • C#创建子窗体、父窗体

    本文部分内容来自书籍 多文档界面 xff08 Multiple Document Interface xff0c MDI xff09 xff0c 其窗体用于同时显示多个文档 xff0c 每个文档显示在各自的窗口中 在MDI窗体中 xff0c
  • k8s部署报错network: failed to find plugin “flannel“ in path [/opt/cni/bin]]

    k8s在部署工作负载时 xff0c pod详情页提示以下问题 Failed to create pod sandbox rpc error code 61 Unknown desc 61 failed to set up sandbox c
  • VS各版本VC各版本对应关系

    Visual Studio 经过多年的发展 xff0c 有许多版本 xff0c 经常我们在拿到一份代码时不知道对应的VS版本 这时候可以打开工程目录下的vcproj vcxproj文件 xff0c 如下所示 span class token
  • 浅谈机场综合布线运维工作中的难点问题

    随着系统规模越来越大 体系越来越复杂 信息系统的作用越来越明显 运维保障的要求越来越高 xff0c 综合布线维护工作面临的问题也愈加凸显 以下以国内某大型机场在综合布线运维工作中面临的实际问题为例 xff0c 给大家分享综合布线运维利器 耐
  • 关于集成商转型

    前言 xff1a 集成商转型是一个老生常谈的话题 xff0c 集成服务一直以来就随着IT行业趋势而发展 xff0c IT行业从最初的硬件主导到硬件软件化 xff0c 再到软件服务化 xff0c 大趋势或将发展至服务产品化 xff0c 行业趋
  • centos系统开启vncserver

    yum y install tigervnc server 这个是安装命令 安装好以后输入vncserver就能开启 第一次开启会让设置密码 这个密码是用户vncclient 连接的时候需要输入的密码 vncserver kill 1 这个
  • 升降横移式立体车库设计机械设计毕业设计全套资料

    资源下载 下载地址如下1502 xff1a https docs qq com doc DTlRSd01BZXNpRUxl 本文选用了社会需求大 xff0c 最常见的一种立体车库 升降横移式立体停车库 介绍和分析了升降横移式立体停车库的结构
  • 在NVIDIA Jetson 平台上运行Deepstream速度慢的常见解决办法

    NVIDIA发布了最新的Deepstream 4 0 光说不练假把式 xff0c 光练不说傻把式 xff0c 不少用户发现在Jetson嵌入式平台上运行Deepstream会遭遇到速度变慢 xff0c 今天汇总几个常见解决方案 xff1a
  • Ubuntu18.04 安装ROS Melodic(官方版) 之不使用科学方法

    此前记录了官方安装流程 xff0c 参见Ubuntu18 04 安装ROS Melodic 官方版 xff0c 但是受限于无法访问raw githubusercontent com xff0c 需科学方法才能成功安装 xff0c 带来诸多不
  • 分层存储Stratis和管理快照

    分层存储Stratis Stratis称为卷管理文件系统 xff0c 以管理物理存储设备池的服务形式运行 xff0c 透明的为所创建的文件系统创建和管理卷 相较于Lvm操作简化了 xff0c Stratis可以动态管理卷层 xff0c 不需
  • 报错:AttributeError: NoneType object has no attribute device

    今天搞个测试 xff0c 测试是在horovod下进行的 问题就出在加载权重 xff08 参数 xff09 文件的地方 xff0c 加载权重命令load weights前要先build一下 xff0c 结果就build出这么一个错误 xff
  • ARM安装python模块

    ARM机器安装python模块绝对不不不不可以直接pip xff01 xff01 xff01 这里演示的是CentOS xff0c 其他linux系统类似 Step1 安装必备 yum install epel release yum in
  • k8s源码编译运行

    本文参考视频 xff1a https www bilibili com video BV1WK41137JA from 61 search amp seid 61 10758236638727752345 0 一定要用root用户 sudo