测试人员需要掌握的 k8s 知识
kubernetes 在容器编排领域已经形成统治地位,不管是开发、运维还是测试,掌握 kubernetes 都变得非常有必要。这篇文章通过 minikube 搭建一个简单的 kubernetes 运行环境。
前言
kubernetes 在容器编排领域已经形成统治地位,不管是开发、运维还是测试,掌握 kubernetes 都变得非常有必要。这篇文章通过 minikube 搭建一个简单的 kubernetes 运行环境。
安装虚拟机
主流的操作系统都支持 kubernetes,但是 windows 操作系统在安装 kubernetes 时,不能通过本地网络直接访问,必须要使用另一台机器,额外装一个虚拟机用起来还是会更方便一些。
装虚拟机可能对电脑的配置要求会更高一些,kubernetes 本身要求电脑的配置至少要 2G 以上内存,2 核以上,虚拟机还需要占用一定的资源,可能会造成电脑满负荷运转。
在 vmware 上装了一个 ubuntu 系统,界面看上去不错。
安装 minikube
kubernetes 官方管理工具是 kubeadmin, 适用于生产环境搭建集群, 也可以使用第三方的管理工具 rancher 或者 k9s 这样的工具。 如果是第一次接触,还是先用 minikube 来顺利调通环境吧。
在 ubuntu 中安装 minikube 比较简单,先通过第一行命令把安装包下载到本地,在通过第二行命令完成安装。
curl -LO https://storage.googleapis.com/minikube/releases/latest/minikube_latest_amd64.deb
sudo dpkg -i minikube_latest_amd64.deb
安装完成后,通过 minikube start 尝试启动环境:
如果是在一个新的系统上启动,可能会提示没有容器执行引擎,因而无法启动。 kubernetes 支持的容器引擎非常多,包括:
- vertualbox
- vmwarefusion
- kvm2
- vmware
- docker
- podman
可以通过 minikube start --help 查看到,我就直接用 docker 了。
安装 docker
docker 安装可以直接参考 官方文档 的说明.
1、先卸载掉原有的依赖:
sudo apt-get remove docker docker-engine docker.io containerd runc
2、设置 rep
sudo apt-get update
sudo apt-get install \
ca-certificates \
curl \
gnupg \
lsb-release
3、添加 docker 的官方 GPG key
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg
4、设置稳定版本
echo \
"deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/ubuntu \
$(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
5、安装 dockeer
-
sudo apt-get update
-
sudo apt-get install docker-ce docker-ce-cli containerd.io docker-compose-plugin
6、设置用户组
sudo usermod -aG docker $USER && newgrp docker
好了,当 docker 安装好后,重新运行 minikube start,出现启动成功的提示就表示 minikube 能正常使用了。
部署应用
管理和部署容器需要用到 kubernetes 提供的 kubectl 工具, 启动时 minikube 提示如果要使用 kubectl 需要拼写 minikube kubectl -- , 非常繁琐,所以可以定义一个快捷命令:
alias k="minikube kubectl --"
在目录下创建一个 nginx-dp.yaml 文件:
apiVersion: apps/v1
kind: Deployment
metadata:
name: nginx-deployment
labels:
app: nginx
spec:
replicas: 1
selector:
matchLabels:
app: nginx
template:
metadata:
labels:
app: nginx
spec:
containers:
- name: nginx
image: nginx:1.14.2
ports:
- containerPort: 80
然后通过以下命令来运行:
minikube kubectl -- apply -f nginx-dp.yaml
启动之后通过以下命令查看已经运行的 deployments:
但是部署的项目目前是无法通过外部访问的,如果需要外部访问,则需要暴露端口:
kubectl expose deployment nginx-deployment --type=LoadBalancer --port 80
查看所有的服务端口
minikube node list # 查看节点IP
kubectl get svc -A
现在就可以通过网络访问到nginx 服务了。
感谢每一个认真阅读我文章的人,礼尚往来总是要有的,虽然不是什么很值钱的东西,如果你用得到的话可以直接拿走:
这些资料,对于【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴上万个测试工程师们走过最艰难的路程,希望也能帮助到你!有需要的小伙伴可以点击下方小卡片领取
更多推荐
所有评论(0)