K8S 中的pod 和 node 区别

初学K8S,对于node 和 pod,感到很迷茫,查询之后,记录如下:

pod

在Kubernetes中,最小的管理元素不是一个个独立的容器,而是Pod,Pod是最小的,管理,创建,计划的最小单元.

一个Pod(as ub a pod of whales or pea pod)相当于一个共享context的配置组,在同一个context下,应用可能还会有独立的cgroup隔离机制,一个Pod是一个容器环境下的“逻辑主机”,它可能包含一个或者多个紧密相连的应用,这些应用可能是在同一个物理主机或虚拟机上。

Pod 的context可以理解成多个linux命名空间的联合

  • PID 命名空间(同一个Pod中应用可以看到其它进程)
  • 网络 命名空间(同一个Pod的中的应用对相同的IP地址和端口有权限)
  • IPC 命名空间(同一个Pod中的应用可以通过VPC或者POSIX进行通信)
  • UTS 命名空间(同一个Pod中的应用共享一个主机名称)

同一个Pod中的应用可以共享磁盘,磁盘是Pod级的,应用可以通过文件系统调用。

查看pod 所属信息:

~> kubectl get pod -o wide
NAME    READY   STATUS    RESTARTS   AGE   IP           NODE    NOMINATED NODE   READINESS GATES
test   1/1     Running    0          14d   192.168.X.X  worker   <none>           <none>

Node

Node是Pod真正运行的主机,可以物理机,也可以是虚拟机。为了管理Pod,每个Node节点上至少要运行container runtime(比如docker或者rkt)、kubelet和kube-proxy服务。

 不像其他的资源(如Pod和Namespace),Node本质上不是Kubernetes来创建的,Kubernetes只是管理Node上的资源。虽然可以通过Manifest创建一个Node对象(如下json所示),但Kubernetes也只是去检查是否真的是有这么一个Node,如果检查失败,也不会往上调度Pod。

每个Node都包括以下状态信息

  • 地址:包括hostname、外网IP和内网IP
  • 条件(Condition):包括OutOfDisk、Ready、MemoryPressure和DiskPressure
  • 容量(Capacity):Node上的可用资源,包括CPU、内存和Pod总数
  • 基本信息(Info):包括内核版本、容器引擎版本、OS类型等

 如果node 被删除,所拥有的pod会自动分流到其他的node,但是存在特殊的无法被分流的pod

 

 

 

 

  • 4
    点赞
  • 34
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
网盘文件永久链接 目录: 1 kubernetes极速入门课程介绍mp4 2kubernetes极速入门k8s初识容器mp4 3 kubernetes极速入门k8s初识容器管理工具及容器编排管理工具介绍mp4 4 kubernetes极速入门k8s初识k8s初识mp4 5 kubernetest极速入门k8s初识k8初识总结mp4 6 kubernetes极速入门k8s功能mp4 7 kubernetes极速入门k8s架构场学习目标学习步骤,mp4 8 kubernetes极速入门k8架构,mp4 9 kubernetes极速入门k8s集群部署场黑学习目标学习步骤mp4 10 kubernetes极速入门k8s集群部署部署工具介绍mp4 11 kubernetes极速入门k8s集群部署主机准备主机系统准备mp4 12 kubernetes极速入门k8s集群部署主机准备主机名设置mp4 13 ekubernetes极速入门k8s集群部署主机准备P没置及主机名解释:mp4 14 kubernetes极速入门k8s集群部署主机准备主机安全设置mp4 15 kubernetes极速入门k8s集群部署主机准备主机时间同步没置:mp4 16 kubernetes极速入门kBs集群部署主机准备永久关闭主机sWap分区mp4 17 kubernetes极速入门ks集群部署主机备配置主机网析过功能mp4 18 kubernetes极速入门k8s集群部署主机佳备配置主机pvs功能mp4 19 kubernetest极速入门k8s集群部署 docker安装mp4 20 kubernetes极速入门k8s集群部害集群软件安装及配置mp4 21 kubernetes极速入门k8s集群部害集群镜像准备mp4 22 kubernetes极速入门k8s集群部署集群初始化mp4 23 kubernetes极速入门k8s集群部署k8s集群部署后验证mp4 24 kubernetes极速入门k8s集群部学习总结_mp4 25 kubernetesi极速入门k8s集群客户端工具kump4 26 kubernetes极速入门k8s集群资源清单YAML文件书写方法YAM介绍mp4 27 kubernetes极速入门k8s集群资源清单 YAM, mp4 28 kubernetes极速入门k8s集群 Name Spacel命名空间 Name Space介绍及查看mp4 29 kubernetes!极速入门k8s集群 Name Spacer命名空间 NameSpace创建mp4 30 kubernetes极速入门k8s集群 Name Space命,mp4 31 kubernetes极速入门k8s集群核心概念 podPod介绍及创建mp4 32 kubernetes极速入门k8s集群核心概念 pod, mp4 33 kubernetes极速入门k8s集群核心概念 Controller介绍分类 Deployment控制器介绍创建 Deployment控制器类型应用mp4 34 kubernetes极速入门k8s集群核心概念 Controller使用资源清单文件创建 Deployment控制器类型应用mp4 35 kubernetes极速入门k8s集群核心概念 Controller使用命令行或资源清单文件删除 Deployment控制器类型应用mp4 36 kubernetes极速入门k8s集群核心概念 Cont mp4 37 kubernetes极速入门k8s集群核心概念 Service Service介绍mp4 38 kubernetes极速入门k8s集群核心概念 Service通过命令行创建 Service,mp4 39 kubernetes极速入门k8s集群核心概念 Service通过资源清单文件创建 Service ClusterlP. mp4 40 kubernetes极速入门k8s集群核心概念 Service通过资源清单文件创建 Service Node Port. mp4 41 kubernetes极速入门k8s集群核心概念 Serv, mp4 42 kubernetesl极速入门结果有方法请注意mp4
一、安装准备: 1.环境 主机名 IP k8s-master 192.168.250.111 k8s-node01 192.168.250.112 k8s-node02 192.168.250.116 2.设置主机名 hostnamectl --static set-hostname k8s-master hostnamectl --static set-hostname k8s-node01 hostnamectl --static set-hostname k8s-node02 3.关闭防火墙和selinux systemctl disable firewalld systemctl stop firewalld sed -i 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/selinux/config 执行完成后重启虚拟机。 4.在master机器上安装ansible 执行命令:sudo yum install ansible (离线处理补充) 5.配置 ansible ssh密钥登录,此操作需要在所有机器上执行 ssh-keygen -t rsa -b 2048 回车 回车 回车 ssh-copy-id $IP #$IP为所有虚拟机,按照提示输入yes 和root密码 (密钥补充) 二、安装kubernetes集群 进入ansible安装路径 : cd /etc/ansible 将路径下的roles文件夹和hosts文件删除。 解压压缩文件kubeasz.zip文件,将解压后的内容放入当前目录下(/etc/ansible) 根据搭建集群环境要求,进入/etc/ansible/example 目录下选取 hosts.allinone.example 单节点AllInOne hosts.m-masters.example 单主多节点 hosts.s-master.example 多主多节点 红色标记的是需要自行修改的地方 修改完成后将文件名改为hosts 放入/etc/ansible/目录下。 安装prepare ansible-playbook 01.prepare.yml 安装etcd ansible-playbook 02.etcd.yml 安装kubectl命令 ansible-playbook 03.kubectl.yml 安装docker ansible-playbook 04.docker.yml 如果执行时出现报错: 可忽略。 解决方法: 在master节点上执行:curl -s -S "https://registry.hub.docker.com/v2/repositories/$@/tags/" | jq '."results"[]["name"]' |sort 所有机器上执行: wget http://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm rpm -ivh epel-release-latest-7.noarch.rpm yum install jq -y 在重新执行: ansible-playbook 04.docker.yml 安装calico ansible-playbook 05.calico.yml 部署master节点 ansible-playbook 06.kube-master.yml 加入node节点 ansible-playbook 07.kube-node.yml 如果执行成功,k8s集群就安装好了。 三、验证安装 如果提示kubectl: command not found,退出重新ssh登陆一下,环境变量生效即可 kubectl version #查看kubernetes版本 kubectl get componentstatus # 可以看到scheduler/controller-manager/etcd等组件 Healthy kubectl cluster-info # 可以看到kubernetes master(apiserver)组件 running kubectl get node # 可以看到单 node Ready状态 kubectl get pod --all-namespaces # 可以查看所有集群pod状态 kubectl get svc --all-namespaces # 可以查看所有集群服务状态 calicoctl node status # 可以在master或者node节点上查看calico网络状态 四、安装主要组件 安装kubedns kubectl create -f manifests/kubedns 安装heapster kubectl create -f manifests/heapster 安装dashboard kubectl create -f manifests/dashboard 访问dashboard 先执行命令查看dashboard的NodePort 端口 kubectl get svc -n kube-system 访问web页面 https://masterIP: 7443 选择令牌按钮 ,用命令查询登录令牌 之前安装过 heapster 执行命令:kubectl get secret -n kube-system 查询 heapster-token-twpw4 的详细内容 执行命令:kubectl describe secret heapster-token-twpw4 -n kube-system Token就是登录令牌,复制登录就好了 安装ingress kubectl create -f manifests/ingress/ 安装EFK(elasticsearch+ fluentd + kibana) 首先进入 manifests/EFK 文件夹下 (cd /etc/ansible/manifests/EFK) 查看并修改 ceph-sercet.yaml 文件。 此key值是 ceph存储用户的token值 ,将此key值转换为base64 将文件红色选选部分修改为转换后的值。 修改完成后 部署 pv 和 pvc 执行命令:kubectl create -f es-pv-data.yaml kubectl create -f es-pvc-data.yaml 部署fluentd 执行命令:kubectl create -f fluentd-rbac.yml -f fluentd-configmap.yml -f fluentd-daemonset.yml 部署elasticsearch 先设置node节点role ,指定master client data 部署位置 执行命令:kubectl get nodes kubectl label node 10.2.0.244 role=master (10.2.0.244 是我本机kubernetes 的master节点 ,所以我也将此master也部署在这里) 其余的两个节点分别是data 和 client 执行命令:kubectl create -f es-discovery-svc.yaml -f es-svc.yaml -f es-master.yaml -f es-client.yaml -f es-data.yaml 其部署elasticsearch集群需要注意一些事项 : Master节点一般只有一个 并且提供9300 端口 客户端通讯使用 Client 节点一般提供9200端口 用于连接kibana 和 fluentd http访问使用 Data 节点是提供数据存储,持久化对data节点进行就可以。 其 master , client , data 部署文件 配置的 CLUSTER_NAME 指的是 elasticsearch集群名称 Java运行自行设置,最大值和最小值需要一致。 最小为-Xms256m 部署kibana 执行命令:kubectl create -f kibana-svc.yaml -f kibana.yaml 这里需要注意 kibana.yaml 文件 参数的设置 这里的CLUSTER_NAME 也是elasticsearch部署文件设置的集群名称。 #安装 flannel 执行命令: cd /etc/ansible/roles/flannel 先修改kube-flannel.yml文件 --iface 对应的是本机的网卡名称 command: [ "/opt/bin/flanneld", "--ip-masq", "--kube-subnet-mgr", "--iface=eth1" ] 修改完成后 执行: kubectl create -f kube-flannel-rbac.yml kubectl apply -f kube-flannel.yml

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值