学习k8s第一步,先动手实践“跑起来”!实现目标,k8s平台部署nginx,实现2副本访问。
1. k8s环境查看
前面的环节已经准备好k8s集群环境,1台k8s-master01,2台k8s-node(分别是k8s-node01 & k8s-node02),
查看信息如下=》# kubectl get node
查看k8s版本信息=》# kubectl version
分别显示【Client Version】和【Server Version】版本信息,此处k8s集群环境显示的是v1.19.1版本,OS系统环境是Linux for Ubuntu 20.04 LTS arm64
查看k8s更多命令=》# kubectl --help 或 kubectl -h
2. k8s平台运行nginx
2.1 准备Nginx镜像资源
拉取nginx镜像=》# docker pull nginx 默认拉取docker-hub标记:latest 版本;
查看docker镜像信息=》# docker images
2.2 使用Deployment创建my-nginx运行nginx镜像,指定两个副本
=》# kubectl create deployment my-nginx --image=nginx --replicas=2
参数说明:--image 指定镜像资源,--replicas 指定创建容器的副本数
此时可以查看下Deployment 创建的信息=》# kubectl get deployment
2.3 暴露k8s创建的Service
=》# kubectl expose deployment my-nginx --port=80 --target-port=80 --type=NodePort
参数说明:--port 是暴露 kube-proxy 访问端口,--target-port 是应用代理端口(此处是nginx的默认端口80,应用程序根据自己的端口暴露),--type 指定外部访问方式(Kubernetes的三种外部访问方式:NodePort、LoadBalancer 和 Ingress)
查看Service信息=》# kubectl get service
查看暴露信息=》# kubectl get ep 或 kubectl get expose
此时nginx创建的2副本容器已经成功在k8s平台运行,浏览器分别输入【http://192.168.0.154:31427/】和【http://192.168.0.116:31427/】显示信息如下:
若nginx需要扩展副本数量,同样的指定 --replicas 数量即可;
3. 删除Deployment & Service
上面的过程我们实现了k8s平台创建deployment类型的资源,假如需要删除【my-nginx】的资源时该怎么处理呢?
我们先查看先deployment创建的pod信息=》# kubectl get pod
这里注意,直接使用【kubectl delete [name]】命令删除时,始终删除不了,因为Deployment类型创建的Pod会被api监控指定的副本数量,当目标副本数量和预期不相符时,会自动拉起Pod以达到预期目标数量,那么这种类型创建的Pod就没有办法删除了嚒?答案是肯定有!俗话说的好,解铃还需系铃人!此时我们使用如下命令:
- 删除Deployment类型的my-nginx =》# kubectl delete deployment my-nginx
- 同时删除对应的Service =》# kubectl delete service my-nginx
以上过程就完成了Nginx的一次k8s之旅,k8s更多的尝试敬请期待。