Kubernets开发环境搭建
前言
Kubernets是Google开源的Google开源的一个容器编排引擎,它支持自动化部署、大规模可 伸缩、应用容器化管理。Google有着丰富的容器管理经验以及基础设施软件,曾经先后构建 3个不同的容器管理系统,分别是Borg, Omega和Kubernetes。而K8s经过近5年的演进,也已 经成为业界最重要的开源系统,并且众多云厂商都推出自己的KaaS,提供容器化服务。本文 主要是尝试对k8s系统进行剖析,深入理解k8s的系统原理。具体的介绍可以参照以下文章:
Borg, Omega, and KubernetesLessons learned from three container-management systems over a decade
系统特点
- 可移植: 支持公有云,私有云,混合云,多重云
- 可扩展: 模块化,插件化,可挂载,可组合
- 自动化: 自动部署,自动重启,自动复制,自动伸缩/扩展
系统架构
虚拟机开发环境
虚拟机配置
在搭建k8s本地环境前,需要准备好基础的操作系统已经必备的工具。本文主要描述如何在 虚拟机上Ubuntu18.04进行配置,首先安装VirtualBox或者是VMware Fusion(Mac系统),下载 Ubuntu18.04系统镜像,在虚拟机中安装系统。需要配置虚拟机的CPU为4核,6G内存(内存过小 无法编译k8s)。
安装golang1.12.4
# download and install golang cd ~/ wget https://dl.google.com/go/go1.12.4.linux-amd64.tar.gz tar -xf go1.12.4.linux-amd64.tar.gz sudo mv go /usr/local/go rm go1.12.4.linux-amd64.tar.gz # go path for k8s mkdir gopath # ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ # setup env variable for non-root user # ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ echo "export GOROOT=/usr/local/go" >> ~/.bashrc echo "export GOPATH=/home/yourname/gopath" >> ~/.bashrc echo "export PATH=/usr/local/go/bin:$PATH" >> ~/.bashrc # check golang version source ~/.bashrc go version # output: go version go1.12.4 linux/amd64 # ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ # setup env variable for root user # ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ sudo su - echo "export GOROOT=/usr/local/go" >> /root/.bashrc echo "export GOPATH=/home/yourname/gopath" >> /root/.bashrc echo "export PATH=/usr/local/go/bin:$PATH" >> /root/.bashrc # check golang version source /root/.bashrc go version # output: go version go1.12.4 linux/amd64 # !!!exit root user exit
获取K8s
mkdir -p /home/yourname/gopath/src/k8s.io cd /home/yourname/gopath/src/k8s.io # 1. wget下载k8s1.11.10 wget https://github.com/kubernetes/kubernetes/archive/v1.11.10.tar.gz tar -xf v1.11.10.tar.gz && mv kubernetes-1.11.10 kubernetes && rm v1.11.10.tar.gz # 2. git clone的方法(fork k8s) git clone https://github.com/YOUYOU/kubernetes.git git remote add upstream https://github.com/kubernetes/kubernetes.git git fetch upstream git checkout -b upstream/release-1.15
编译k8s
sudo su - apt-get install curl -y # install etcd cd /home/yourname/gopath/src/kubernetes ./hack/install-etcd.sh export PATH=/home/yourname/gopath/src/kubernetes/third_party/etcd:${PATH} # compile and run k8s apt-get install make docker.io gcc -y export KUBERNETES_PROVIDER=local ./hack/local-up-cluster.sh # build all tools make
使用k8s
export KUBECONFIG=/var/run/kubernetes/admin.kubeconfig ./cluster/kubectl.sh # check k8s install ./cluster/kubectl.sh cluster-info # Kubernetes master is running at http://localhost:8080 # KubeDNS is running at http://localhost:8080/api/v1/namespaces/kube-system/services/kube-dns:dns/proxy # To further debug and diagnose cluster problems, use 'kubectl cluster-info dump'
容器开发环境
总结
以上就基本完成kubernets单机本地部署,后续开始阅读阅读源码,先配置好编辑器,推荐 VIM或者Emacs,如果你想尝试下Emacs的强大编辑和调试功能,可以参考《从零开始配置 emacs编辑器》,已经配置好了Golang的IDE环境。