栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 系统运维 > 运维 > Linux

kubernetes系列一之简介及namespace

Linux 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

kubernetes系列一之简介及namespace

目录

kubernetes架构

Master节点

Node节点

Add-ons

Kubeadm

namespace


kubernetes架构

一个基础的kubernetes集群包含一个master节点和多个node节点。每个节点可以是一台物理 机,也可以是一台虚拟机

Master 节点:提供的集群控制,对集群做出全局性决策,例如调度等。通常在master节点上不运行用户容器。

节点组件:运行在每一个Node节点上,维护运行的pod并提供kubernetes运行时环境。

Master节点

Kube-apiserver
kube-apiserver对外暴露了Kubernetes API。它是的 Kubernetes 前端控制层。它被设计为水平扩展,即通过部署更多实例来缩放

Etcd
etcd 用于 Kubernetes 的后端存储。所有集群数据都存储在此处,始终为您的 Kubernetes 集群的 etcd 数据提供备份计划。

kube-controller-manager
运行控制器,它们是处理集群中常规任务的后台线程。逻辑上,每个控制器是一个单独的进程,但为了降低复杂性,它们都被编译成独立的可执行文件,并在单个进程中运行。

kube-scheduler
监视没有分配节点的新创建的 Pod,选择一个节点供他们运行。

Node节点

Kube-proxy
Kube-proxy用于管理service的访问入口,包括集群内pod到service的访问和集群外访问service。

Kubelet
Kubelet是在集群内每个节点中运行的一个代理,用于保证pod的运行

容器引擎
通常使用docker来运行容器,也可使用rkt等做为替代方案。

查看组件运行状态
Docker:

[root@k8s-node1 runfile]# systemctl status docker
   docker.service - Docker Application Container Engine
   Loaded: loaded (/usr/lib/systemd/system/docker.service; enabled; vendor preset: disabled)
   Active: active (running) since Sun 2019-04-28 18:00:36 CST; 2 weeks 3 days ago

kubelet:

[root@k8s-node1 runfile]# systemctl status kubelet
   kubelet.service - kubelet: The Kubernetes Node Agent
   Loaded: loaded (/usr/lib/systemd/system/kubelet.service; enabled; vendor preset: disabled)
  Drop-In: /usr/lib/systemd/system/kubelet.service.d
           └─10-kubeadm.conf
   Active: active (running) since Sun 2019-04-28 17:15:03 CST; 2 weeks 3 days ago

查看node节点的所包含的系统pod 

[root@k8s-node1 runfile]# kubectl get pods --field-selector spec.nodeName=k8s-node2 --namespace=kube-system
NAME                          READY   STATUS    RESTARTS   AGE
kube-flannel-ds-amd64-7tn6g   1/1     Running   2          18d
kube-proxy-q8xmm              1/1     Running   2          18d

Add-ons

kubernetes使用中通常需要一些额外的组件实现特定功能,常用的Add-ons包括:
Core-dns:为整个集群提供DNS服务
Ingress Controller:为service提供外网访问入口
Dashboard: 提供图形化管理界面
Heapster 提供集群资源监控
Flannel:为kubernetes提供方便的网络规划服务

Kubeadm

Kubeadm是社区主推的快速创建Kubernetes集群工具。

kubeadm 通过执行必要的操作来启动和运行一个最小可用的集群。它被故意设计为只关心启动集群,而不是之前的节点准备工作。同样的,诸如安装各种各样值得拥有的插件,例如 Kubernetes Dashboard、监控解决方案以及特定云提供商的
Master节点:kubeadm init,快速初始化安装主节点组件 
Node节点:kubeadm join,将从节点加入集群

Kubeadm为了实现部署的便捷性,将一些组件封装到了Pod中。 Master节点:

[root@k8s-master]# kubectl get pods --field-selector spec.nodeName=k8s-master --namespace=kube-system
NAME                                 READY   STATUS    RESTARTS   AGE
coredns-fb8b8dccf-j4kn5              1/1     Running    3         18d
coredns-fb8b8dccf-mx6pw              1/1     Running    3         18d
etcd-k8s-master                          1/1     Running    2         18d
kube-apiserver-k8s-master            1/1     Running    3         18d
kube-controller-manager-k8s-master   1/1     Running    2         18d
kube-flannel-ds-amd64-lfslh          1/1     Running    3         18d
kube-proxy-dt69s                     1/1     Running    2         18d
kube-scheduler-k8s-master            1/1     Running    2         18d
kubernetes-dashboard-5f798cc594      1/1     Running    3         18d

namespace

Kubernetes 支持多个虚拟集群,它们底层依赖于同一个物理集群。 这些虚拟集群被称为命名空间。
命名空间提供了良好的资源隔离,可以用于区分不通的项目、用户等。如开发测试使用的namespace,或者生产使用的namespace。
使用如下命令可以查看哪些对象在命名空间中:

kubectl api-resources --namespaced=true

查看存在哪些namespace。 

kubectl get namespace
kubectl get pod –namespace=kube-system
kubectl get pod –n kube-system

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/880828.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号