K8s笔记

kubernetes框架
Kubernetes 是用来管理容器集群的平台。
Pod 是 Kubernetes 管理的最小单位。
一个K8S集群是由两大部分组成:Master节点和Node节点
Master节点主要包括API Server、Scheduler、Controller manager、etcd四大组件。
Node节点主要包括kubelet和kube-proxy。

Pod创建流程
1.用户通过RESTAPI 创建一个Pod
2.apiserver 将其写入etcd
3.scheduluer检测未绑定node的pod,开始调度并更新Pod的Node绑定
4.kubelet检测到有更新的Pod调度过来,通过container runtime运行该Pod
5.kubelet通过container runtime取到Pod状态,并更新到apiserver中

k9s管理工具 安装方法 curl -sS https://webinstall.dev/k9s | bash

Pod
Pod 是 Kubernetes 管理的最小单位。
Pod由一个或多个容器组成,并且这些容器共享网络和存储资源

init 容器
两个特点
1.Init 容器总是运行到成功完成为止。
2.每个 Init 容器都必须在下一个 Init 容器启动之前成功完成

pause容器
用来实现pod中多个容器之间资源共享的基础。

自动补全
apt install bash-completion
source /usr/share/bash-completion/bash_completion
source <(kubectl completion bash)

三大接口 CRI CNI CSI

namespace 作用 创建 删除

集群切换 kubectl config use-context {NAME}

etcd 作用
安装etcdctl
apt install etcd-client –y

创建快照
ETCDCTL_API=3 etcdctl snapshot save /root/etcd-snapshot.db
–endpoints=https://127.0.0.1:2379
–cert=/etc/kubernetes/pki/etcd/server.crt
–cacert=/etc/kubernetes/pki/etcd/ca.crt
–key=/etc/kubernetes/pki/etcd/server.key

回滚快照
ETCDCTL_API=3 etcdctl snapshot restore /root/etcd-snapshot.db
–data-dir=/root/etcd
–endpoints=https://127.0.0.1:2379
–cert=/etc/kubernetes/pki/etcd/server.crt
–cacert=/etc/kubernetes/pki/etcd/ca.crt
–key=/etc/kubernetes/pki/etcd/server.key

查看某个资源的详细信息
kubectl describe
将某个资源的信息以yaml形式输出
kubectl get pod xxx -o yaml

label 标签 是不同资源之间互相关联的方式
annotation 注解 仅供第三方工具查询,不起实际作用

查看api version信息 kubectl api-version
查看当前集群的resources kubectl api-resources

静态pod static pod
由特定节点上的kubelet直接管理,不受api server管理。
默认路径是 /etc/kubernetes/manifests/
Pod 生命周期 pending Pod 已被 Kubernetes 系统接受 ,但有一个或者多个容器镜像尚未创建。

工作负载
deployment statefulset daemonset job cronjob


Service
转发后端的四种方式: Clusterip Nodeport Loadblance Externalname
三种IP Pod IP ClusterIP NodeIP
三种端口 Port Targetport NodePort
应用对外暴露的方式 Nodeport loadblance ingress
会话保持 service.spec.sessionAffinity 设置为 ClientIP

服务发现 ——DNS服务 coreDNS kube-DNS
DNS策略 四种 Default ClusterFirst ClusterFirstWithHostNet None
健康检查
存活探针 LivenessProbe
就绪探针 ReadinessProbe
三种诊断方法 Exec TCPSocket HTTPGet
initialDelaySeconds

数据存储

PV 与 PVC的概念
PVC的三种访问模式 以及 回收策略
PV卷的四种状态
storageClass

EmptyDir 用于pod内多个container共享同一个目录

configmap 用来对应用的配置文件进行统一管理

secret 用来给pod传递敏感信息 使用base64加解密

Pod的节点分配(调度)

nodename
nodeselector

affinity/anti-affinity 硬性要求 软性要求

taint/toleration

Pod的水平伸缩(HPA)
计算公式:期望副本数 = ceil[当前副本数 * ( 当前指标 / 期望指标 )]
监控指标收集过程

集群的资源管理
设定namespaces的资源限制
设定pod的资源限制
QOS(服务质量) ———— limits 和 requests ;有三种QOS
yaml语法
标量 字典 列表
缩进使用空格 不能使用tab

管理节点的三个命令 cordon drain delete

节点停机维护流程
1.kubectl cordon node3 设置node3为不可调度
2.kubectl drain node3 驱逐node3上的pod
3.进行节点停机维护
4,维护完成后 kubectl uncordon node3 设置node3 接受调度

kubectl delete node3 删除节点node3

kubectl logs 查看pod日志
kubectl edit 编辑资源对象

Role 和 ClusterRole 配置规则
RoleBinding 和 ClusterRoleBinding 将规则授予用户
创建用户 kubectl create serviceaccount cicd-token -n app-team1

NetworkPolicy

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值