k8s note

声明1:以下内容摘抄自《Docker技术入门与实战(第3版)》,仅供个人学习参考使用。

1. K8S组件

1.1 Master

组件备注
Etcd存放集群状态和配置的数据库
kube-apiserverk8s外接口,提供RESTful API供客户端和其它组件调用
kube-scheduler资源调度
controller-manager *资源管理器,维护集群状态
kube-ui(可选)查看集群状态的web界面
kube-dns(可选)记录启动的容器组和服务地址

1) Etcd

Etcd是一个开源的分布式键值仓库项目,可用作分布式系统中的配置信息管理和服务发现。具有简单(支持RESTful API和gRPC API)、安全(基于TLS实现安全连接访问)、快速(支持每秒万次的并发写操作)和可靠(基于Raft算法实现一致性)的特点。

2) kube-apiserver

作为 REST API的服务端,接受来自客户端和其它组件的请求,并更新Etcd数据库。推荐部署多个kube-apiserver提高可用性。

3) kube-scheduler

负责资源调度。

4) controller-manager

包括 replication, endpoint, node, namespace, ServiceAccounts 等。

1.2 Nodes

组件备注
容器引擎目前支持docker和rkt
kubelet汇报节点状态,并实现容器组的生命周期管理
kube-proxy配置正确的服务发现和负载均衡转发规则
属性备注
地址(address)hostname, ExternalIP, InternalIP
状态(condition)OutOfDisk, Ready, MemoryPressure, DiskPressure
资源容量(capacity)CPU, 内存,最多存放的pod个数
节点信息(info)系统内核,k8s版本,docker版本等

1) kubelet

将给定的pod运行在自己所在的节点上。

2) kube-proxy

在每个node监听,把对应服务端口信息映射到pod。就是一个NAT,又是一个负载均衡。

2. K8S使用

2.1 kubectl

kubectl是K8S自带的客户端,封装了对 K8S API 的调用。此外,社区还提供了多种语言的客户端库。

kubectl[global-flgs][subcmd][resource-type][name][sub-cmd-falg]
get
describe
create
delete
… …

声明2:以下内容摘抄自xxx,仅供个人学习参考使用。

3. Argo

3.1 存储

  • 本地
    • emptyDir
    • hostPath
spec:
    volumes:
    - name: vol_1     #存储卷名 
      hostPath:
        path: /data/nginx/html     #宿主机目录
        type: DirectoryOrCreate     #如文件夹不存在,则创建
    containers:
    - name: mynginx
      image: nginx:latest
      volumeMounts:
      - name: vol_1
        mountPath: /usr/share/nginx/html     #容器目录
  • 网络
    • nfs
##############################
# 静态pv
##############################
apiVersion: v1
kind: Pod
metadata:
  name: myweb
spec:
  containers:
  - name: myweb
    image: nginx
    ports:
        containerPort: 80
    volumeMounts:
        - name: nfs
          mountPath: "/usr/share/nginx/html"
  volumes:
  - name: nfs
    persistentVolumeClaim:
      claimName: pvc-01    
#***************************************************************************#
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
  name: pvc-01             #与容器保持一致
spec:
  accessModes:
    - ReadWriteMany
  resources:
    requests:
      storage: 1Gi          #
  selector:                 #通过labels绑定到对应pv(不指定则随机绑定)
    matchLabels:
      pv: pv-01
  storageClassName: class1
#***************************************************************************#
apiVersion: v1
kind: PersistentVolume
metadata:
  name: nfs-pv-01   #
  labels:                                 #labels
    pv: pv-01
spec:
  capacity:                                #容量
    storage: 5Gi
  accessModes:                             #访问模式:ReadWriteOnce, ReadOnlyMany, ReadWriteMany
    - ReadWriteMany
  persistentVolumeReclaimPolicy: Recycle   #回收策略:Retain; Recycle; Delete
  storageClassName: class1                 #设置pv类别
  nfs:
    server: 1.2.3.4
    path: "/"                              #pv在nfs服务器上对应的目录
  • 云存储
    • nas

容器资源

  • requests
  • limits

调度

  • Affinity/AntiAffinity
  • Taint/Toleration

Kubernetes Store(pv、pvc)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值