一、查看集群基本信息
查看集群的版本
输出服务端和客户端的版本信息。
kubectl version
会同时看到 client 和 server 两个版本号。其中,client 对应 kubectl 的版本,server 对应 Master 上安装的 Kubernetes 的版本。
查看集群的详细信息
通过 kubectl 命令可以根 Kubernetes 交互。kubectl 命令的常用格式是:kubectl 动作 资源
。作用是在指定的资源上执行指定的动作。执行运行命令kubectl
可以获取所有关于资源和动作的信息。官方说明文档也有详细说明。
显示master集群的地址
kubectl cluster-info
查看可以进行部署的节点
kubectl get nodes
二、部署应用
-- help可用于获取命令的额外信息
例:
kubectl get nodes --help
用kubectl创建部署命令在Kubernetes上部署一个应用
通过 kubectl run 命令可以在集群中运行指定镜像。对于部署镜像,启动应用方面而言,实际常用的并不是kubectl run, 而是kubectl creat或者kubectl apply。apply用的相对更多。
kubectl creat:用配置创建新资源,由于资源名称在名称空间中应该是唯一的,重复执行时,会报错。
kubectl apply:将配置应用于资源。 如果资源不存在,就创建新资源。重复执行时,配置有修改则资源更新,否则资源不变化。
kubectl create deployment kubernetes-bootcamp --image=gcr.io/google-samples/kubernetes-bootcamp:v1
应用是部署在集群内的,如果没有将应用的服务向集群外进行暴露,那么使用url也无法直接访问到该服务。
直接访问会提示拒绝链接:
curl http://localhost:8001/version
curl: (7) Failed to connect to localhost port 8001 after 2203 ms: Connection refused
kubectl proxy
命令可以创建代理,将通信转发到集群范围的专用网络。代理可以通过 control-C 终止,并且在运行时不会显示任何输出,可以在其他终端窗口来运行该代理。
再次访问:
echo -e "\n\n\n\e[92mStarting Proxy. After starting it will not output a response. Please click the first Terminal Tab\n";
kubectl proxy
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"
}
我们现在在主机和Kubernetes集群之间建立了连接。代理允许从这些终端直接访问API。
我们可以看到通过代理端点托管的所有api。例如,我们可以使用curl命令直接通过API查询版本:
curl http://localhost:8001/version