Skip to content

Latest commit

 

History

History
301 lines (214 loc) · 6.28 KB

01-搭建调试环境.md

File metadata and controls

301 lines (214 loc) · 6.28 KB

安装centos系统到笔记本或Vmware 配置4U8G

注:请在编译目录预留足够的空间20G即可  
这里以笔记本安装centos系统为例  

安装包位置 链接:https://pan.baidu.com/s/1MxPBLqwUHoWpYv1rqJOL_g 提取码:tlk1

操作系统: centos8.2

安装方式:

dell笔记本安装系统

1,Win32DiskImager制作U盘启动盘

2,修改开机U盘启动

3,安装系统

U盘还原NTFS格式:

1,DiskGenius转换FDD格式

2,格式化U盘选择NTFS格式

注:安装完windows无法识别U盘

vm安装系统

桥接网络选择网卡

系统配置

1,修改主机名[根据需求]

hostnamectl set-hostname develop
修改后重启

2,配置yum阿里源

 echo >  /etc/yum.repos.d/CentOS-Base.repo

 vim /etc/yum.repos.d/CentOS-Base.repo

[aliyun-AppStream]
name=CentOS-$releasever - AppStream
baseurl=http://mirrors.aliyun.com/centos/$releasever/AppStream/$basearch/os/
gpgcheck=0
enabled=1
[aliyun-BaseOS]
name=CentOS-$releasever - Base
baseurl=http://mirrors.aliyun.com/centos/$releasever/BaseOS/$basearch/os/
gpgcheck=0
enabled=1
[aliyun-extras]
name=CentOS-$releasever - Extras
baseurl=https://mirrors.aliyun.com/centos/8.0.1905/extras/x86_64/os/
enabled=1
gpgcheck=0

3,配制生效

dnf -y install epel-release
dnf clear all
dnf makecache
dnf repolist
yum update -y

4,安装工具

yum install -y epel-release
yum install -y chrony conntrack ipvsadm ipset jq iptables curl sysstat libseccomp wget socat git

5,安装docker

yum install https://download.docker.com/linux/fedora/30/x86_64/stable/Packages/containerd.io-1.2.6-3.3.fc30.x86_64.rpm

yum install -y yum-utils device-mapper-persistent-data lvm2
yum install -y docker-ce
systemctl enable docker
systemctl start docker

6,关闭防火墙

systemctl stop firewalld
systemctl disable firewalld
iptables -F && iptables -X && iptables -F -t nat && iptables -X -t nat
iptables -P FORWARD ACCEPT

7,关闭交换内存

swapoff -a
sed -i '/ swap / s/^\(.*\)$/#\1/g' /etc/fstab 

8,关闭SELinux

setenforce 0
sed -i 's/^SELINUX=.*/SELINUX=disabled/' /etc/selinux/config

安装golang

下载安装包

https://dl.google.com/go/go1.15.2.linux-amd64.tar.gz

解压

tar -C /usr/local -xzf go1.15.2.linux-amd64.tar.gz

配置GOPATH

默认位置/root/go

vim ~/.bashrc

添加

export GOPATH=/root/go
source ~/.bashrc
配置国内代理
go env -w GOPROXY=https://goproxy.cn,direct [windows linux都要配置]

下载代码

从码云下载

mkdir -p $GOPATH/src/k8s.io

cd  $GOPATH/src/k8s.io

git clone https://gitee.com/mirrors/Kubernetes.git

查看分支

git describe --tags
v1.20.0-alpha.1-100-gd9b576d61ea

windows配置

安装goland

安装FileZilla

安装go1.15.2

配置远程调试

在linux上生成编译文件

保证k8s源码 k8s.io/kubernetes/pkg/generated/openapi".GetOpenAPIDefinitions 引用
cd  $GOPATH/src/k8s.io/Kubernetes
make generated_files

将生成的k8s.io\Kubernetes\pkg\generated\openapi\zz_generated.openapi.go
copy到windows下对应的代码
在windows代码目录$GOPATH\src\k8s.io\Kubernetes下执行:
go mod vendor

点击goland --> tools --> deployment --> wgl[远程调试连接名]

在linux安装cfessl

cd  $GOPATH/src/k8s.io/Kubernetes
go get -u -v github.com/cloudflare/cfssl/cmd/...
ln -s $GOPATH/bin/cfssl $GOROOT/bin/cfssl

修改etcd安装脚本,下载速度太慢,手动安装,脚本需要传输到linux上相应的位置

在windows下载etcd安装包,注意版本

etcd-v3.4.13-linux-amd64.tar.gz

将安装包copy到linux

用FilezZilla 传输到 $GOPATH/src/k8s.io/Kubernetes/third_party 目录下

cd $GOPATH/src/k8s.io/Kubernetes/hack
执行 ./install-etcd.sh
配置etcd 环境变量
vim ~/.bashrc
PATH="/root/go/src/k8s.io/Kubernetes/third_party/etcd:${PATH}"
source ~/.bashrc

启动集群

在linux系统
cd $GOPATH/src/k8s.io/Kubernetes
./hack/local-up-cluster.sh

添加调试信息

例如这里调试kube-apiserver
在D:\golang\src\k8s.io\Kubernetes\cmd\kube-apiserver\app下添加
render.go
该文件主要作用是打印指针变量

添加打印信息,将日志文件保存到指定目录

	fileName1 := "/root/debug2.log"
	logFile1,err  := os.Create(fileName1)
	defer logFile1.Close()
	if err != nil {
		log.Fatalln("open file error !")
	}
	// 创建一个日志对象
	debugLog1 := log.New(logFile1,"[Debug]",log.LstdFlags)
	debugLog.Println("A debug message here")
	//配置一个日志格式的前缀
	debugLog1.SetPrefix("[Info]")
	debugLog1.Println("A Info Message here ")
	//配置log的Flag参数
	debugLog1.SetFlags(debugLog.Flags() | log.LstdFlags)
	debugLog1.Print("-----------------k8s debug s------------------------")
	output := Render(s.Authentication)
	debugLog1.Print(output)
	debugLog1.Print("11111111111111111111k8s debug s1111111111111111111111")

将文件copy到linux服务器

将第一次启动进程关闭 
Ctrl+C
重新编译kube-apiserver
cd $GOPATH/src/k8s.io/Kubernetes
make WHAT="cmd/kube-apiserver"

重新启动集群

./hack/local-up-cluster.sh -O  #这里 -O 参数避免重复编译

查看输出日志,分析结果

使用JOSN格式化工具将数据格式化 https://www.bejson.com/

copy到notepad++