1、kube-apiserver 管理内置资源作为集群的API入口与etcd交互存储集群状态,提供认证、授权和访问控制,运行在Master节点上。
端口:6443


2、etcd 用于分布式系统中存储配置信息,运行在Master节点上。‌
端口:2381(备用节点间通信端口)、2380(节点间通信端口)、2379(客户端通信端口处理Kubernetes API Server的读写请求)


3、kube-schedule 负责将Pod调度到集群的合适节点上,运行在Master节点上。
端口:10259(用于暴露调度器的监控数据和健康检查信息)


4、kube-controll 运行节点、副本、端点控制器进程来管理集群状态,运行在Master节点上。
端口:10257(用于暴露控制器的监控数据和健康检查信息)


5、kube-proxy 集群中负责网络代理和负载均衡的核心组件,运行在每个节点上。
端口:10249(默认)、10256(默认)、以及应用服务对应的NodePort


6、kubelet 管理节点上的Pod和容器生命周期,运行在每个节点上。   
端口:10250(api服务端口)、10248(健康检查端口)、44021(Kubelet与API Server建立连接时动态分配的临时通信端口)


7、nginx: master 是系统的管理核心,负责全局控制和Worker进程管理‌。
端口:80(HTTP处理外部流量)、443(HTTPS处理外部流量)、8181(管理界面或监控面板端口)、8443(内部管理接口)、10247(健康检查)、10246(健康检查)、8081(内部接口)


8、nginx-ingress  根据域名将外部流量转发到集群内部服务‌,自动将请求分发到多个Pod实例,统一入口避免端口冲突,运行在每个节点上。
端口:18443(Ingress控制器HTTPS备用端口)、10254(Ingress控制器健康检查)、10245(Ingress控制器的内部通信)


9、calico-typha  Calico网络中的关键组件,连接聚合、数据过滤、增量同步。 
端口:9098(typha组件的指标收集端口)、5473(Typha与Calico组件间的‌内部通信端口‌)


10、calico-node 从IP池中为Pod分配唯一IP地址,管理Pod与主机、Pod之间的网络通信,实施网络策略、路由管理等,运行在每个节点上。
端口:9099(calico节点的‌健康检查和指标端点)

基本概念:
1、deployment #无状态应用部署(如skywalking、libreoffice、harbor、业务系统Java应用等)
2、statefulset #有状态应用部署(如rabbitmq、redis、nacos、zookeeper、elasticsearch、mongodb)
3、daemonset #确保所有的node运行同一个pod(fluentd、neuvector、ingress)
4、namespace #命名空间将对象逻辑上隔离
5、label#标签,附加到某个资源上,用于关联对象、查询和筛选
6、job #一次性任务
7、cronjob #定时任务
8、pod #最小部署单元、一组容器的集合
9、service #只支持四层负载均衡、服务发现等网络功能,防止pod失联、定义一组pod的访问策略
10、Nodeport #可以将http服务暴露在宿主机的端口上以便外部可以访问
11、ingresses #对外暴露应用服务外部访问通过ingress域名,TCP/IP 7层可以根据 http header, path 进行路由转发
12、StorageClasses #存储类(动态分配PV)
13、PersistentVolumes #持久化存储卷
14、PersistentVolumeClaims  #持久化存储卷声明
15、ConfigMaps #管理应用程序配置信息、环境变量、命令行参数,在应用程序中硬编码就不够灵活。
16、Secrets #存储敏感信息的kubernetesAPI对象,Secrets对象是加密的。
17、RBAC(Role Based Access Control) #用户权限控制

日常使用命令

kubectl top node   #查看所有node节点的CPU和内存资源消耗
kubectl top pod -n kube-logging   #查看kube-logging命名空间下pod的CPU和内存资源消耗
kubectl top pod -A --sort-by=cpu  #查看集群中所有命名空间的Pod资源使用情况,并按CPU使用量降序排序
kubectl top pod -A --sort-by=memory  #查看Kubernetes集群中所有命名空间的Pod资源使用情况,并按内存使用量降序排序
kubectl describe  node 192.168.2.190  #查看某个node详细信息
kubectl get pod -A -o wide | grep 192.168.2.190 #查看节点上的pod

#查看所有的应用服务对应的nodePort端口
kubectl get svc -A -o custom-columns=NAMESPACE:.metadata.namespace,NAME:.metadata.name,PORT:.spec.ports[*].nodePort 
#查看某个节点的pod的memory使用率降序排列
kubectl get pod -A -o wide | grep 192.168.2.190 | awk '{print $1, $2}' | xargs -n2 kubectl top pod --no-headers -n $1 | sort --key 3 -nr | column -t
#查看某个节点的pod的CPU使用率降序排列
kubectl get pod -A -o wide | grep 192.168.2.190 | awk '{print $1, $2}' | xargs -n2 kubectl top pod --no-headers -n $1 | sort --key 2 -nr | column -t

#从pod拷出
kubectl cp -n test-tool nacos-primary-0:tmp/nacos.sql  /tmp/nacos.sql
#拷进pod
kubectl cp -n test-tool backup-config.json nacos-primary-0:/tmp/backup-config.json.json  

#查看某个pod的日志
kubectl logs -f nginx-77776fdcdc-sd4rs  -n kube-logging #持续输出新日志内容
kubectl logs -f --tail=1000 nginx-77776fdcdc-sd4rs -n kube-logging #输出最后1000行历史日志
kubectl logs nginx | grep "tinme_out" > /tmp/log.txt

#进入某个容器
kubectl exec -it nginx-77776fdcdc-sd4rs -n kube-logging bash 

kubectl apply -f  1.yaml  #创建资源
kubectl delete -f 1.yaml  #删除资源
kubectl get pods --all-namespaces -o wide > /pods_list.txt #导出所有命名空间下所有Pod
kubectl get deployments --all-namespaces -o yaml > /deployments.yaml #导出所有命名空间下所有deployments
kubectl get storageclass #获取集群存储类的信息 
kubectl get pod -o wide -A #获取集群所有pod的详细信息
kubectl get deployment -o wide -A #获取集群所有deployment的详细信息
kubectl get service -o wide  #获取集群所有service的详细信息
kubectl get cs    查看master组件是否健康
kubectl get ep    查看service关联的pod
kubectl describe networkpolicy -n my-app   查看命名空间为my-app的网络策略详细信息
kubectl get  pvc  查看pvc存储
kubectl get  ns   查看命名空间
kubectl delete ns crane-system #删除命名空间
kubectl delete ns crane-system --force #强制删除命名空间crane-system
kubectl delete ns crane-system --force --grace-period=0 #立即终止命名空间中的所有资源,强制删除命名空间crane-system
kubectl -n crane-system delete statefulset credit-redis-ha-server  #在默认的命名空间下删掉statefulset
kubectl get pod podname -o wide -n kube-logging #获取 Pod 的基本信息和详细状态

kubectl describe pod podname -n credit-tool  #提供Pod的全面详细信息和事件日志
kubectl describe cronjob backup-scheduled -n c7n-system #查看定时任务的详细事件
kubectl get events -n kube-system # 获取kube-system命名空间内的事件日志         
kubectl get deployment -n kube-system  #查询某个命名空间的deployment
kubectl get daemonsets -n kube-system  #查询某个命名空间的daemonsets
kubectl get statefulsets -n kube-system   #查询某个命名空间的statefulsets
kubectl get svc --all-namespaces  #查看所有服务的端口
kubectl get cronjobs -n kube-system #查看某个命名空间的定时任务
kubectl create job --from=cronjob/backup-scheduled manual-backup -n c7n-system #手动触发定时任务备份
kubectl delete cronjob backup-scheduled -n kube-system #删除CronJob
kubectl rollout restart deployment/controllers -n kube-system #重启deployment
kubectl delete pod calico-typha -n kube-system #删除pod后自动重建
kubectl get deployment calico-typha  -n kube-system -o yaml > calico-typha.yaml #导出deployment的yaml
kubectl edit deployment calico-typha -n kube-system #修改deployment的yaml

更多推荐