1. 命令
1.1 获取service服务
-
获取集群内所有命名空间的service服务
sudo kubectl get service --all-namespaces
-
获取集群内指定命名空间的service服务
sudo kubectl get service -n命名空间
-
当权限限制到一个命名空间时,只能使用下面这个
sudo kubectl -n 命名空间 get service
-
获取集群内当前命名空间的service服务
sudo kubectl get service
1.2 获取pod节点
-
获取集群所有命名空间的pod
sudo kubectl get pod --all-namespaces
-
获取集群内指定命名空间的pod
sudo kubectl get pod -n命名空间
-
当权限限制到一个命名空间时,只能使用下面这个
sudo kubectl -n 命名空间 get pod
-
获取集群内当前命名空间的pod
sudo kubectl get pod
1.3 网络
在Kubernetes中,通过
Ingress
资源和直接通过http://servicename.namespace.svc.cluster.local
访问服务(Service)的方式虽然都涉及到服务名(serviceName),但它们的使用场景和目的有所不同,因此不完全等同。
Ingress 资源
Ingress
是 Kubernetes 中的一个 API 对象,它允许你将外部 HTTP(S) 流量路由到你的集群中。Ingress
控制器负责实现这个路由,具体实现方式可能依赖于你的集群配置(例如 Nginx, Traefik, Istio 等)。在Ingress
资源中,serviceName
字段用于指定将流量路由到的后端服务的名称。这个serviceName
指的是 Kubernetes 内部的服务(Service)名称,而不是外部域名或URL。
直接通过 Cluster DNS 访问服务
在 Kubernetes 集群中,每个服务(Service)都会被分配一个集群内部的 DNS 名称,格式为servicename.namespace.svc.cluster.local
。集群中的 Pod 可以通过这个 DNS 名称直接访问服务。这种方式不依赖于Ingress
,它主要用于集群内部的服务发现和通信。
1.4 复制文件
##当权限限制命名空间
sudo kubectl -n 命名空间 cp pod-name:/usr/local/logs/error.log ./error.log
1.5 查看容器日志
##当权限限制命名空间
sudo kubectl -n 命名空间 logs -f pod-name #滚动输出 (有点问题)
sudo kubectl -n 命名空间 logs --tail 10 pod-name #查看最后10行