【云原生学习笔记】kubernetes实践命令
文章目录前言一、Kubernetes 安装二、集群交互1、查看集群状况2、关于部署应用程序三、关于集群的特点说明前言前面介绍了一些关于k8s集群基础的理论知识,本次将结合实践加深对理论的理解。一、Kubernetes 安装鉴于学习环境限制,本次安装Minikube。minikube 是本地 Kubernetes,专注于让 Kubernetes 易于学习和开发。k8s一般用于linux系统中,由于仅
前言
前面介绍了一些关于k8s集群基础的理论知识,本次将结合实践加深对理论的理解。
一、Kubernetes 安装
鉴于学习环境限制,本次安装Minikube。minikube 是本地 Kubernetes,专注于让 Kubernetes 易于学习和开发。k8s一般用于linux系统中,由于仅用于学习和熟悉k8s命令,本次将按照所用系统,安装windows版的Minikube。官方教程
- 下载.exe安装包进行安装。
- 将安装目录添加到系统环境变量Path。安装目录默认是
C:\Program Files\Kubernetes\Minikube
- 需要提前安装好docker,同样是windows版本并启动。
- 在cmd中运行命令
minikube start
以初始化并启动minikube。 - 之后可以使用
minikube stop
来停止集群
Minikube 会启动一个虚拟机,Kubernetes 集群运行在虚拟机上。minikube带有dashboard服务,用于可视化监控和查看minikube情况。在新的cmd终端上运行minikube dashboard
以启动该功能。
二、集群交互
通过 kubectl 命令可以根 Kubernetes 交互。kubectl 命令的常用格式是:kubectl 动作 资源
。作用是在指定的资源上执行指定的动作。执行运行命令kubectl
可以获取所有关于资源和动作的信息。官方说明文档也有详细说明。
1、查看集群状况
查看 kubectl 是否安装成功,一般用查看版本反映:
kubectl version
会同时看到 client 和 server 两个版本号。其中,client 对应 kubectl 的版本,server 对应 Master 上安装的 Kubernetes 的版本。
查看集群的详情:kubectl cluster-info
查看集群node:kubectl get nodes
2、关于部署应用程序
通过 kubectl run
命令可以在集群中运行指定镜像。对于部署镜像,启动应用方面而言,实际常用的并不是kubectl run
, 而是kubectl creat
或者kubectl apply
。apply
用的相对更多。
kubectl creat:用配置创建新资源,由于资源名称在名称空间中应该是唯一的,重复执行时,会报错。
kubectl apply:将配置应用于资源。 如果资源不存在,就创建新资源。重复执行时,配置有修改则资源更新,否则资源不变化。
这里使用kubectl run
将应用部署运行起来:
kubectl run kubernetes-bootcamp --image=jocatalin/kubernetes-bootcamp:v1 --port=8080
检查pod状态running后即成功:
kubectl get pod -A | grep kubernetes-bootcamp
default kubernetes-bootcamp 1/1 Running 0 28m
应用是部署在集群内的,如果没有将应用的服务向集群外进行暴露,那么使用url也无法直接访问到该服务。
直接访问会提示拒绝链接:
curl http://localhost:8001/version
curl: (7) Failed to connect to localhost port 8001 after 2203 ms: Connection refused
kubectl proxy
命令可以创建代理,将通信转发到集群范围的专用网络。代理可以通过 control-C 终止,并且在运行时不会显示任何输出,可以在其他终端窗口来运行该代理。
再次访问:
curl http://localhost:8001/version
{
"major": "1",
"minor": "23",
"gitVersion": "v1.23.1",
"gitCommit": "86ec240af8cbd1b60bcc4c03c20da9b98005b92e",
"gitTreeState": "clean",
"buildDate": "2021-12-16T11:34:54Z",
"goVersion": "go1.17.5",
"compiler": "gc",
"platform": "linux/amd64"
}
这里通过集群自带的转发访问我们部署的应用:
$ curl http://localhost:8001/api/v1/namespaces/default/pods/kubernetes-bootcamp/proxy/
Hello Kubernetes bootcamp! | Running on: kubernetes-bootcamp | v=1
三、关于集群的特点说明
- 自动负载均衡: 自动将请求分配到各个pod上进行响应。
- 服务伸缩:更新应用的pod副本数量
- 服务版本升级:更新应用使用的镜像用于升级。
可以使用kubectl rollout status deployments/xxx
查看升级过程,是逐一替换各个pod。
可以使用kubectl rollout undo deployments/xxx
快速回退到上一个版本。 - 对于集群资源的故障排除常用的命令有:
kubectl get
: 列出资源
kubectl describe
: 显示有关资源的详细信息
kubectl logs
: 打印日志
kubectl exec
: 去容器上执行命令
更多推荐
所有评论(0)