---------------------------
前阵子,逛Youtube的时候,看到一条 Gitlab CI/CD DEMO,我就顺手点击进去看了下。
呦!!Gitlab多了自动部署的Kubernetes模板.
看着Gitlab 的Demo Video 在CI/CD 如此行云流水,觉得大赞!!就立即动手开始搭环境了。。。
结果这一搭,就真的是入大坑了!!!
kube我第一次接触,真的是入坑好多天,现在都还没爬出来。。你没看错,是真的没爬出来。。。
万事开头难~ 下面的需求列表牵扯的资源看起来比较简单,但是搭建过程的Debug才是难点。。。
不过不要担心,这里会给出关键路径,保证不会让你迷路。。
应该不会迷路。。
不会迷路。。
--------------我是正文吗?--------------
阅读前需要读者有以下技能和硬件资源
* VMWARE EXSI搭建或者 VBOX 虚拟机搭建技能
* Linux任意发行版本的操作技能
* 熟悉Linux系统(如不熟悉,请先恶补
《Linux SERVER HACK 》 O'Reilly出版)
* 能让EXSI下的虚拟机流畅的上 Google平台
(最好路由器上实现全局顺畅上Google,不多解释,你懂的)
* 12G内存和支持VT-x的Intel处理器PC
(用来做虚拟机)(啥?你是AMD粉?我也是呀!)
导航:
* 最低条件列表(网络,硬件,系统)
* 安装kubernetes 、Gitlab CI multi runner、Gitlab
* 小结
------------ 正文了! ------------
EXSI and Ubuntu 17.04
我找了台服务器,安装了EXSI 6.5, 在上面安装了2个 Ubuntu 17.04 server 64bit。一路默认安装,
在安装Packages的时候选择了ssh和sql 包。1个系统给了4G内存,用来安装Gitlab服务, 1个给了6G内存,用来安装 Kubernetes。
路标1: 需要在每个虚拟机的CPU选项上设置 ”硬件虚拟化” , kube需求此功能。
路标2: VBOX 也OK(如图所示)
路标3: 安装完系统后做快照!安装完系统后做快照!安装完系统后做快照!
路标4: Gitlab最好给4G内存,Kube推荐给6G内存。 时间是宝贵的,现阶段没必要调优节省内存。
路标5: 必须流畅上Google,否则你不用实操了,找国内kube镜像的事相信大家没这闲工夫。。
K8s(我把Kubernetes简称了,以下都称K8s)平台:
参考以下文章,在其中6G内存系统上,需要先安装docker-ce和kubectl以及 kubeadm。过程简单不叙述。
https://kubernetes.io/docs/setup/independent/create-cluster-kubeadm/
我推荐使用weave来作为Pod network,因为flannel 始终无法让K8s的各个服务正常通讯,翻阅google和经过1天的debug,我放弃了。。。
过程如下:
su #切换到root (虽然百般不乐意切root操作,看在实验性质的份上忍了)
kubeadm reset #先reset一遍??第一次搞无所谓
kubeadm init --apiserver-advertise-address=192.168.199.114 # 这里的IP替换成自己IP
export KUBECONFIG=/etc/kubernetes/admin.conf
mkdir -p $HOME/.kube
cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
chown $(id -u):$(id -g) $HOME/.kube/config
# 以上4行是 init 完成后 kubeadm推荐做的操作,也就是说用普通账号运行服务
kubectl get pods --all-namespaces -o wide #非必要操作,只是确认下服务安装的怎么样了。如图:
看STATUS栏,
kubectl apply -f "https://cloud.weave.works/k8s/net?k8s-version=$(kubectl version | base64 | tr -d '\n')"
$ kubectl apply -f https://raw.githubusercontent.com/kubernetes/dashboard/master/src/deploy/recommended/kubernetes-dashboard.yaml
把本节点添加到管理:
kubectl taint nodes --all node-role.kubernetes.io/master-
kubectl create -f kubernetes-dashboard.yaml (从 github 拿 yaml 文件)
kubectl taint nodes --all node-role.kubernetes.io/master-
kubectl create -f kubernetes-dashboard.yaml (从 github 拿 yaml 文件)
kubectl proxy --address 192.168.199.114 --port=9090 --accept-hosts='^*$'
输入 http://192.168.199.114:9090/ui
未完,待续
评论
发表评论