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 复制文件
shell
##当权限限制命名空间
sudo kubectl -n 命名空间 cp pod-name:/usr/local/logs/error.log ./error.log
1.5 查看容器日志
shell
##当权限限制命名空间
sudo kubectl -n 命名空间 logs -f pod-name #滚动输出 (有点问题)
sudo kubectl -n 命名空间 logs --tail 10 pod-name #查看最后10行