k8s命名空间([k8s系列六]K8S网络补充之DNS)
本文目录
[k8s系列六]K8S网络补充之DNS
前面两章介绍了service和ingress,service有Cluster IP和Node Port两种类型: 但实际上,集群内部一般不直接用Cluster IP,而是用service名作为域名,通过Core DNS组件做一次域名解析后得到cluster IP。跨集群一般也不用nodePort,而是走Ingress ,或者loadbalance service。 DNS(Domain Name System) 用于将域名解析成IP地址,例如 Kubernetes 早期的 DNS 组件叫 KubeDNS。CNCF 社区后来引入了更加成熟的开源项目 CoreDNS 替换了 KubeDNS。所以我们现在提到 KubeDNS,其实默认指代的是 CoreDNS 项目。 集群中的每一个 Service(包括 DNS 服务本身)都将被分配一个 DNS name。格式为:《service_name》.《namespace》.svc.《cluster_domain》。cluster_domain默认为cluster.local。 每一个Pod创建时,都会在Pod的/etc/resolv.conf文件中,自动加入kube-dns service的domain name与相对应的IP地址。因此Pods可以透过名为kube-dns的service组件,找到正在运行的kube-dns。 根据附录1创建dnsutils pod,并按照DNS格式,尝试解析kube-dns(kube-system命名空间)和whoami-clusterip(default命名空间)。然后查看pod的域名解析文件/etc/resolv.conf中的内容,最后尝试在通过域名+端口号访问whoami-clusterip服务。
k8s kubectl常用命令总结
查看所有 pod 列表, -n 后跟 namespace, 查看指定的命名空间 kubectl get pod kubectl get pod -n kube 查看所有的命名空间 kubectl get ns 删除某个节点 kubectl delete pod 节点名称 -n 命名空间 查看 RC 和 service 列表, -o wide 查看详细信息 kubectl get rc,svc kubectl get pod,svc -o wide kubectl get pod -o yaml 查看某个名称空间下的所有节点以及ip kubectl get pod -n 名称空间名 -o wide 模拟用户发起请求: (模拟100个用户同时发起100000条请求,后面跟着ip地址)***隐藏网址*** 显示 Node 的详细信息 kubectl describe node 192.168.0.212 显示 Pod 的详细信息, 特别是查看 pod 无法创建的时候的日志 kubectl describe pod eg: kubectl describe pod redis-master-tqds9 根据 yaml 创建资源, apply 可以重复执行,create 不行 kubectl create -f pod.yaml kubectl apply -f pod.yaml 基于 pod.yaml 定义的名称删除 pod kubectl delete -f pod.yaml 删除所有包含某个 label 的pod 和 service kubectl delete pod,svc -l name= 删除所有 Pod kubectl delete pod --all 查看 endpoint 列表 kubectl get endpoints 执行 pod 的 date 命令 kubectl exec – date kubectl exec – bash kubectl exec – ping 10.24.51.9 通过bash获得 pod 中某个容器的TTY,相当于登录容器 kubectl exec -it -c – bash eg: kubectl exec -it redis-master-cln81 – bash 查看容器的日志 kubectl logs kubectl logs -f # 实时查看日志 kubectl get pods --all-namespaces kubectl get pods kubernetes-dashboard-76479d66bb-nj8wr --namespace=kube-system 查看pods具体信息 kubectl get pods -o wide kubernetes-dashboard-76479d66bb-nj8wr --namespace=kube-system 查看集群健康状态 kubectl get cs 获取所有deployment kubectl get deployment --all-namespaces 列出该 namespace 中的所有 pod 包括未初始化的 kubectl get pods --include-uninitialized 查看deployment() kubectl get deployment nginx-app kubectl get rc,services 查看pods结构信息(重点,通过这个看日志分析错误) 对控制器和服务,node同样有效 kubectl describe pods xxxxpodsname --namespace=xxxnamespace 其他控制器类似吧,就是kubectl get 控制器 控制器具体名称 查看pod日志 kubectl logs $POD_NAME 查看pod变量 kubectl exec my-nginx-5j8ok – printenv | grep SERVICE 集群 kubectl get cs # 集群健康情况 kubectl cluster-info # 集群核心组件运行情况 kubectl get namespaces # 表空间名 kubectl version # 版本 kubectl api-versions # API kubectl get events # 查看事件 kubectl get nodes //获取全部节点 kubectl delete node k8s2 //删除节点 kubectl rollout status deploy nginx-test 创建 kubectl create -f ./nginx.yaml # 创建资源 kubectl create -f . # 创建当前目录下的所有yaml资源 kubectl create -f ./nginx1.yaml -f ./mysql2.yaml # 使用多个文件创建资源 kubectl create -f ./dir # 使用目录下的所有清单文件来创建资源***隐藏网址*** kubectl run -i --tty busybox --image=busybox ----创建带有终端的pod kubectl run nginx --image=nginx # 启动一个 nginx 实例 kubectl run mybusybox --image=busybox --replicas=5 ----启动多个pod kubectl explain pods,svc # 获取 pod 和 svc 的文档 kubectl rolling-update python-v1 -f python-v2.json # 滚动更新 pod frontend-v1 kubectl rolling-update python-v1 python-v2 --image=image:v2 # 更新资源名称并更新镜像 kubectl rolling-update python --image=image:v2 # 更新 frontend pod 中的镜像 kubectl rolling-update python-v1 python-v2 --rollback # 退出已存在的进行中的滚动更新 cat pod.json | kubectl replace -f - # 基于 stdin 输入的 JSON 替换 pod 强制替换,删除后重新创建资源。会导致服务中断。 kubectl replace --force -f ./pod.json 为 nginx RC 创建服务,启用本地 80 端口连接到容器上的 8000 端口 kubectl expose rc nginx --port=80 --target-port=8000 更新单容器 pod 的镜像版本(tag)到 v4 kubectl get pod nginx-pod -o yaml | sed ‘s/(image: myimage):.*$/\1:v4/’ | kubectl replace -f - kubectl label pods nginx-pod new-label=awesome # 添加标签***隐藏网址*** kubectl autoscale deployment foo --min=2 --max=10 # 自动扩展 deployment “foo” 资源 kubectl edit svc/docker-registry # 名为 docker-registry 的 service KUBE_EDITOR=“nano” kubectl edit svc/docker-registry # 使用其它器 动态伸缩pod kubectl scale --replicas=3 rs/foo # 将foo副本集变成3个 kubectl scale --replicas=3 -f foo.yaml # 缩放“foo”中指定的资源。 kubectl scale --current-replicas=2 --replicas=3 deployment/mysql # 将deployment/mysql从2个变成3个 kubectl scale --replicas=5 rc/foo rc/bar rc/baz # 变更多个控制器的数量 kubectl rollout status deploy deployment/mysql # 查看变更进度 kubectl delete -f ./pod.json # 删除 pod.json 文件中定义的类型和名称的 pod kubectl delete pod,service baz foo # 删除名为“baz”的 pod 和名为“foo”的 service kubectl delete pods,services -l name=myLabel # 删除具有 name=myLabel 标签的 pod 和 serivce kubectl delete pods,services -l name=myLabel --include-uninitialized # 删除具有 name=myLabel 标签的 pod 和 service,包括尚未初始化的 kubectl -n my-ns delete po,svc --all # 删除 my-ns namespace下的所有 pod 和 serivce,包括尚未初始化的 kubectl delete pods prometheus-7fcfcb9f89-qkkf7 --grace-period=0 --force 强制删除 kubectl logs nginx-pod # dump 输出 pod 的日志(stdout) kubectl logs nginx-pod -c my-container # dump 输出 pod 中容器的日志(stdout,pod 中有多个容器的情况下使用) kubectl logs -f nginx-pod # 流式输出 pod 的日志(stdout) kubectl logs -f nginx-pod -c my-container # 流式输出 pod 中容器的日志(stdout,pod 中有多个容器的情况下使用) kubectl run -i --tty busybox --image=busybox – sh # 交互式 shell 的方式运行 pod kubectl attach nginx-pod -i # 连接到运行中的容器 kubectl port-forward nginx-pod 5000:6000 # 转发 pod 中的 6000 端口到本地的 5000 端口 kubectl exec nginx-pod – ls / # 在已存在的容器中执行命令(只有一个容器的情况下) kubectl exec nginx-pod -c my-container – ls / # 在已存在的容器中执行命令(pod 中有多个容器的情况下) kubectl top pod POD_NAME --containers # 显示指定 pod和容器的指标度量 kubectl drain k8s-node # 清空 my-node 以待维护 kubectl top node k8s-node # 显示 my-node 的指标度量 kubectl cluster-info dump --output-directory=/path/to/cluster-state # 将当前集群状态输出到 /path/to/cluster-state
更多文章:
dom事件流(当一个DOM节点被点击时候,我们希望能够执行一个函数,应该怎么做)
2024年7月28日 15:20
八爪鱼采集教程(八爪鱼如何发布到网站,有那个详细教下那个发布接口的么详细点,别让我看教程,不懂才请教的)
2024年7月3日 12:51
oracle11g数据库安装教程(怎么安装oracle11数据库)
2024年6月6日 10:53
left join中把左表的筛选条件(sql join: 两张表关联,要求显示左边表所有数据,而筛选条件是右表里的,)
2024年7月23日 03:16
教程类英文翻译(e英语教程翻译文章hi ,iam estelle,some people like to cal)
2024年7月4日 09:53
OPPO手机侧边栏是什么功能怎么打开?oppo手机侧边栏怎么打开
2024年6月30日 12:31
firefox兼容浏览器插件安装(绿色插件 让火狐3兼容所有下载工具)
2024年4月7日 20:05
centos7网卡配置(Virtual Box虚拟机CentOS 7.x双网卡网络配置)
2024年7月19日 12:37
python自学到什么程度可以去上班(python学到什么程度可以就业_学python好就业吗)
2024年7月1日 16:45
银联风控系统会冻结资金吗?银联系统如何解决银行卡生僻字网上转账问题
2024年7月18日 07:10
python连接mysql数据库(python 怎么连接mysql)
2023年12月18日 06:20