一、查看集群基本信息

查看集群的版本

输出服务端和客户端的版本信息。

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