kubernetes(一)------组件介绍

更多详情,参考https://blog.csdn.net/hanghangaidoudou/article/details/86485308

1. 下载kubernetes

因为kubernentes是集群cluster,所以它要部署在不同的宿主机 时,因为有的宿主机的角色是master(不用干活,只负责分派任务给node角色的宿主机)和node

安装部署kubernentes集群参考 https://blog.csdn.net/daiqinge/article/details/103228753

 

2. kubernetes的主要组件

参考官网https://kubernetes.io/docs/concepts/overview/components/

(1)kubernetes的master角色的主机上

通过安装kubernetes的master安装包,安装了kube-apiserver、kube-scheduler、kube-controller-manager这三个管理组件。还默认安装了kubectl这个命令工具(kubectl这个工具还可以用client那个安装包来单独安装)。etcd: 是记录状态、集群配置信息等

(2)kubernetes的node角色的主机上,

主要是kube-proxy和kubelet

kube-proxy:监听kube-apiserver中服务和端口的变化情况,并创建路由规则进行服务负载均衡。

kubelet:用来接收kube-apiserver发来的请求,管理pod,kubelet启动时自动向kube-apiserver注册节点)

containertime:运行container的程序(docker、rkt、containered)

(3)其他组件或概念:

pod:kubernetes的最小操作单元,里面包括一个或多个容器。每个pod会有单独的ip,pod销毁,它的ip也会跟着销毁。每个pod里面有共享pause容器,其他业务容器共享这个容器的网络栈和volume。

flannel: node上安装flannel,是kubernetes的网络配置工具,集群的每个主机上都运行一个flanneld的代理程序。

kubeadm:是集群命令行工具,需要单独下载。

deployment控制器 replication controller、replicaset控制器:管理pod。deployment包括replication controller的所有功能,还增加了查看升级详细进度和状态、升级暂停和启动、回滚、滚动更新等功能。replicaitonset和replication controller几乎没区别,能创建和销毁pod。如果有容器异常退出或者多余,这三者都可以重新创建pod或者收回保证集群高可用。所以deployment是最新且最优的选择。

daemonset控制器: 它创建的pod只在一个节点上,只能创建一个pod。而deployment可以创建多个pod,并把这些pod分布到多个节点上。

job控制器:以上的几个都是持久性控制器,比如跑的是web应用等。而job用于非持久性任务,比如归档文件等,pod跑完任务就结束运行。

service服务:运行前台服务的pod如何找到后台的pod,就用service,它是提供访问策略或微服务的

coreDNS: 使服务直接访问不用通过ip了,而是通过dns

yaml文件:配置文件yaml文件,可以用.yml 或者.yaml为文件后缀,是JSON文件的超集。yaml文件区分大小写,缩进表示层级关系,缩进不能用tab,只能用空格,缩进的空格个数不重要,只有同级别的对齐就行。yaml文件使用map和list两种数据结构,map的如下:

apiversion: v1

kind: pod

metadata:

  name: ress-site

  labels: xxx

而list的如下:

args

  - sleep

  - "1000"

  - message

volume:kubernetes适配各种存储系统,包括本地存储EmptyDir和HostPath、网络存储NFS、GlusterFS以及PV/PVC。当volume被挂载到pod,这个pod里的所有container都可以访问这个volume。

 

(4)kubectl常见命令

kubectl create -f nginx.yaml           创建yaml文件

kubectl get nodes

kubectl get pods --all-namespaces

kubectl get namespaces

kubectl get componentstatus

kubectl scale deployment yaml文件  --replicas=5:   对pod的扩容

kbuectl apply -f yaml配置文件:  对pod的缩容

kubectl get pods -o wide 查看pod的个数等信息

kubectl get pods --all-namespaces -o wide 获取master宿主机上api server的ip

kubectl label node 192.168.1.122 mem=large    把此node贴标签为mem内存比较大,这样负载均衡分配pod任务的时候,有的pod需要大内存的,就优先选择这个node节点。

kubectl get pods --all-namespaces --show-labels -o wide 查看master上etcd pod的label

kubectl get deployments 查看node宿主机上的deployments

kubectl cluster-info  查看cluster在哪些机器ip和port上

kubectl config view 查看cluser配置信息

kubectl describe nodes

kubectl describe pods --all-namespaces 显示pods的所有详细信息

kubectl describe services --all-namespaces 给出cluster所有service 的详细信息

kubectl api-resources -o wide

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值