最近赋闲在家等考科三,闲来无事想着本地编译下k8s玩玩(毕竟云原生时代最重要的一个平台)。
- 环境:m1使用multipass创建的一个ubuntu虚拟机
- 代码版本:v1.24.0
需要的工具包
1 2 3 4 5 6 7 8
| sudo apt install build-essential sudo apt install -y gcc g++ gawk autoconf automake python3-cmarkgfm sudo apt install -y acl libacl1-dev sudo apt install -y attr libattr1-dev sudo apt install -y libxxhash-dev sudo apt install -y libzstd-dev sudo apt install -y liblz4-dev sudo apt install -y libssl-dev
|
第三方包
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
| #jq sudo apt-get install jq
#pyyaml sudo apt install python3-pip pip install pyyaml
#rsync cd ~/Downloads wget https: tar -xf v3.2.4.tar.gz cd rsync-3.2.4
./configure make sudo cp ./rsync /usr/local/bin/ sudo cp ./rsync-ssl /usr/local/bin/
|
etcd
1 2 3 4 5 6 7 8 9
| ETCD_VER=v3.5.4 curl -L https://storage.googleapis.com/etcd/${ETCD_VER}/etcd-${ETCD_VER}-linux-arm64.tar.gz -o /tmp/etcd-${ETCD_VER}-linux-arm64.tar.gz mkdir ~/etcd tar xzvf /tmp/etcd-${ETCD_VER}-linux-arm64.tar.gz -C ~/etcd --strip-components=1 rm -f /tmp/etcd-${ETCD_VER}-linux-arm64.tar.gz
sudo vim ~/.bashrc 添加 export PATH="/home/ubuntu/etcd:${PATH}" source ~/.bashrc
|
安装docker及golang(golang 1.18)
代码下载
1 2 3
| ### 用的码云,速度快亿点 git clone https: git checkout -b kube1.24 v1.24.0
|
启动单机版
1 2
| #进入源码目录编译并启动k8s sudo ./hack/local-up-cluster.sh
|
调试
1 2
| export KUBECONFIG=/var/run/kubernetes/admin.kubeconfig cluster/kubectl.sh
|
看到下面这个说明编译成功
新开控制台使用k8s.使用k8s命令前记得执行这个命令: export KUBECONFIG=/var/run/kubernetes/admin.kubeconfig (或是把这个加入环境变量)
部署nginx
外网访问自己刚启动的nginx,命令:cluster/kubectl.sh port-forward nginx 8080:80 –address 0.0.0.0
成功的!可以愉快的玩耍自己编译出来的k8s