前言:
提到微服务,就不得不聊聊SpringCloud 和 Kubernetes ,两者都能为微服务提供完整的落地解决方案,两者的社区也相当活跃,对于Spring Cloud来说,可以称之为开发框架,对于K8s来说,可以称之为运维平台,两者的定位其实是有一定的差异的;到现在,容器化技术普及应用,容器的编排和管理是一件非常重要且和开发团队息息相关的事情,且在云原生越来越火的当下,了解和深入学习K8s都是非常有必要的。
本文将以最为简单的方式,在docker-desktop环境下搭建k8s环境
搭建步骤
- 安装 Docker Desktop
- 步骤2:下载 Kubernetes 镜像并启动运行
- 下载 kubectl 工具
- 启用 Dashboard(可选)
1、安装 Docker Desktop
这里贴出dockerDesktop官网 下载就通过自己的OS以及搭载的芯片选择对应的版本进行下载就好,也可以访问 Docker Hub,找到社区版 Docker CE,并根据自己的操作系统选择对应的产品。
2、下载 Kubernetes 镜像并启动运行
想要把kubernetes启动起来,需要先下载k8s组件的镜像,犹豫某一些原因,下载国外官网的镜像肯定会比较慢(有高速梯子的当我没说),所以我们这里直接使用aliyun提供的k8s-deploy ,
对于不同操作系统:
1、macos:
将下列脚本拷贝,然后去新建一个sh脚本文件,比如:
vim create_k8s_command.sh
#拷贝下方代码内容
#!/bin/bash
set -e
KUBE_VERSION=v1.21.5
KUBE_PAUSE_VERSION=3.4.1
ETCD_VERSION=3.4.13-0
COREDNS_VERSION=v1.8.0
GCR_URL=k8s.gcr.io
ALIYUN_URL=registry.cn-hangzhou.aliyuncs.com/google_containers
# get images
images=(kube-proxy:${KUBE_VERSION}
kube-scheduler:${KUBE_VERSION}
kube-controller-manager:${KUBE_VERSION}
kube-apiserver:${KUBE_VERSION}
pause:${KUBE_PAUSE_VERSION}
etcd:${ETCD_VERSION}
coredns:${COREDNS_VERSION})
for imageName in ${images[@]} ; do
docker pull $ALIYUN_URL/$imageName
docker tag $ALIYUN_URL/$imageName $GCR_URL/$imageName
docker rmi $ALIYUN_URL/$imageName
done
docker tag $GCR_URL/coredns:$COREDNS_VERSION $GCR_URL/coredns/coredns:$COREDNS_VERSION
# show images
docker images
:wq保存退出
此时,你的当前目录下,会多出一个文件叫做create_k8s_command.sh ,现在犹豫权限不够,他不能直接被执行,需要先提权限,这里为了方便展示,我直接提到777:
chmod 777 create_k8s_command.sh
可以看到通过提权,我们得到了一个可执行文件,执行:
./create_k8s_command.sh
等待下载相关k8s组件,下载完成后,会展示以下(因为脚本末尾执行了一下docker images):
2、windows:
先在文件夹内创建一个镜像配置文件:images.properties:
k8s.gcr.io/pause:3.4.1=registry.cn-hangzhou.aliyuncs.com/google_containers/pause:3.4.1
k8s.gcr.io/kube-controller-manager:v1.21.5=registry.cn-hangzhou.aliyuncs.com/google_containers/kube-controller-manager:v1.21.5
k8s.gcr.io/kube-scheduler:v1.21.5=registry.cn-hangzhou.aliyuncs.com/google_containers/kube-scheduler:v1.21.5
k8s.gcr.io/kube-proxy:v1.21.5=registry.cn-hangzhou.aliyuncs.com/google_containers/kube-proxy:v1.21.5
k8s.gcr.io/kube-apiserver:v1.21.5=registry.cn-hangzhou.aliyuncs.com/google_containers/kube-apiserver:v1.21.5
k8s.gcr.io/etcd:3.4.13-0=registry.cn-hangzhou.aliyuncs.com/google_containers/etcd:3.4.13-0
k8s.gcr.io/coredns:v1.8.0=registry.cn-hangzhou.aliyuncs.com/google_containers/coredns:v1.8.0
k8s.gcr.io/coredns/coredns:v1.8.0=registry.cn-hangzhou.aliyuncs.com/google_containers/coredns:v1.8.0
然后在当前目录下再创建一个自动化脚本create-k8s-command.ps1 帮助你去拉镜像:
foreach($line in Get-Content .\images.properties) {
$data = $line.Split('=')
$key = $data[0];
$value = $data[1];
Write-Output "$key=$value"
docker pull ${value}
docker tag ${value} ${key}
docker rmi ${value}
}
执行:
./create-k8s-command.ps1
如果告知因为安全策略无法执行,请用管理员方式运行cmd执行:
Set-ExecutionPolicy RemoteSigned
下载完成后,需要去Docker-Desktop上开启k8s: 等待docker重启,k8s会自动启动。
3、下载kubectl工具
根据自己电脑的OS,下载对应版本的kubectl,下载完成后,解压提权,并且移动到系统特定目录下(或者配环境变量都行):
$ tar zxvf kubernetes-client-darwin-amd64.tar.gz
$ cd ./kubernetes/client/bin
$ chmod +x kubectl && mv kubectl /usr/local/bin/kubectl
- windows
下载后解压 kubectl.exe 文件到 C:\Windows\System32 目录下。
执行kubectl version 查看版本:
4、启用k8s Dashboard(可视化,可有可无,选配)
docker pull kubernetesui/dashboard:v2.4.0
docker pull kubernetesui/metrics-scraper:v1.0.7
- 启动dashboard需要在集群内部署
recommended.yaml
kubectl apply -f https://raw.githubusercontent.com/kubernetes/dashboard/v2.4.0/aio/deploy/recommended.yaml
- 部署成功后,启动K8s Api-server 访问代理
kubectl proxy
Starting to serve on 127.0.0.1:8001
结语
后续会更新在k8s下的服务发现和CI/CD相关的运维开发教程
- 参考:
- https://www.jianshu.com/p/e5c056baa8ab
- https://kubernetes.io/zh/docs/reference/kubectl/overview/
|