day2 : k8s建置(上)

基於现在kubernetes的建置实在太过容易,有kind、k3d、minikube、microk8s等等...,甚至只想布署服务也可以使用GKE、EKS、AKS这种云端k8s环境,所以我这边在环境的选择上就使用最贴近生产环境可能的配置来进行说明。

做为一套要提供服务的k8s环境,我准备了6台主机os则是用centos 7,一台haproxy作为control plane的load balance,三台control plane控管k8s集群的资源配置管理,两台computer做为服务运行的node:环境中初次建置的话还需要一台harbor作为image管理使用,为进行自动化以及可延伸为gitops的机能,需要再一台control server和可选的git server作为gitops的管理。

https://ithelp.ithome.com.tw/upload/images/20210902/20139661MFkh3581DO.png

开始建置前首先粗略了解一下,什麽是 terraform什麽是ansible

  • terraform : 配合各种provider的module实现Infrastructure as Code,我认为terraform在云平台服务厂商上的运用做得非常优秀。
  • ansible : 配合各种ansible module对受管控的主机进行设定,ansible多样化的module让操作自由度极高。
    两者各有优缺,以gcp的infra层面管控我会认为terraform是优於ansible的,但是在长远的管理角度,使用ansible并搭配inventory做大量控管及调整设定会更为优异,所以我会两者兼用。

开始配置

在control center这台主机上安装管理会使用到的套件,我会一开始装好terraform、ansible、kubectl、docker、krew、kubectl-tree、helm、argoctl、argo rollouts。

安装(为方便起见我使用root操作)
terraform and ansible

yum install -y yum-utils epel-release
yum-config-manager --add-repo https://rpm.releases.hashicorp.com/RHEL/hashicorp.repo
yum install -y terraform ansible

我个人使用的版本是
ansible-2.9.23-1.el7.noarch
terraform-1.0.3-1.x86_64

kubectl

#latest
curl -LO https://storage.googleapis.com/kubernetes-release/release/$(curl -s https://storage.googleapis.com/kubernetes-release/release/stable.txt)/bin/linux/amd64/kubectl
#special version
curl -LO https://storage.googleapis.com/kubernetes-release/release/v1.19.11/bin/linux/amd64/kubectl

cp kubectl /usr/local/bin/
chmod 755 /usr/local/bin/kubectl

docker

yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
yum install docker-ce -y
systemctl start docker
systemctl enable docker

krew and kubectl-tree

curl -fsSLO https://github.com/kubernetes-sigs/krew/releases/download/v0.4.1/krew.tar.gz
tar zxvf krew.tar.gz
./krew-linux_amd64 install krew
export PATH="${PATH}:${HOME}/.krew/bin”
echo 'export PATH="${PATH}:${HOME}/.krew/bin”' >> /etc/profile
kubectl krew install tree

helm

curl -fsSLO https://get.helm.sh/helm-v3.6.3-linux-amd64.tar.gz
tar zxvf helm-v3.6.3-linux-amd64.tar.gz
cp ./linux-amd64/helm /usr/local/bin/

argocd and argo rollouts

curl -sSL -o /usr/local/bin/argocd https://github.com/argoproj/argo-cd/releases/latest/download/argocd-linux-amd64
chmod 755 /usr/local/bin/argocd
curl -LO https://github.com/argoproj/argo-rollouts/releases/latest/download/kubectl-argo-rollouts-darwin-amd64
mv ./kubectl-argo-rollouts-darwin-amd64 /usr/local/bin/kubectl-argo-rollouts
chmod 755 /usr/local/bin/kubectl-argo-rollouts

工欲善其事,必先利其器
这边安装好了各种工具,明天开始将会利用这些工具让k8s轻松的布建及管理。


<<:  [DAY2] 适者生存下的环境

>>:  Day 2 - Android 是什麽?

[Day17] Esp32用STA mode + Relay

1.前言 各位有理解loop中很长的咒语吗?不懂得可以多看几次,不要气馁,文章不会跑走,所以继续加油...

[iT铁人赛Day18]JAVA的函数(下篇)

今天继续来说函数,因为函数的内容有点多,所以分两篇来讲 这次稍微说到传递引数跟传递阵列到函数里吧 因...

Day12 - 如何查询委托单状态

中秋过,老一辈常讲甚麽中秋变盘,认不认同看个人。但中秋之後的几天大涨大跌的,是不是好刺激? 想作多或...

Day2 介绍网页的基础架构

要开始写网页之前,首先要了解到网页是如何形成的,其实网页形成非常的简单,透过网页浏览器(google...

Angular RxJs 各种解订阅方式

昨天说到了将资料订阅出来渲染在页面上的事,那麽就就来说说 RxJs 解订阅这件事吧。 这也是为了避免...