Cgroup和Namespace
ps aux|grep 'run.sh'
ps aux|grep 4021
ls -l /proc/$$/ns/#查看命名空间
docker ps#docker进程
kill -9 number#杀死进程
命名空间号一致,则相互可以看到
docker exec -ti myblog bash
docker容器对于操作系统来说是一个进程。
命名空间是用来做资源隔离的
pid:用于进程隔离(PID:进程ID)
net:管理网络接口(NET:网络)
ipc:管理对IPC资源的访问(IPC:进程间通信(信号量、消息队列和共享内存))
mnt:管理文件系统挂载点(MNT:挂载)
uts:隔离主机名和域名
user:隔离用户和用户组
Control Groups(简称CGroups)能够隔离宿主机器上的物理资源,例如CPU、内存、磁盘I/O和网络宽带。每一个CGroup都是一组被相同的标准和参数限制的进程。
UnionFS其实是一种为Linux操作系统设计的用于把多个文件系统联合到同一挂载点的文件系统服务。它能将不同文件夹中的层联合到同一个文件夹中,整个联合的过程被称为联合挂载(Union Mount)
Docker的存储驱动
镜像分层存储
Docker镜像是由一系列的层组成的,每层代表Dockerfile中的一条指令。
四、kubelet是一个单独的服务
systemctl status kubelet
kubectl -n kube-system get po -o wide#pod节点
journalctl -fu docker# f是tail结尾的,u决定系统命令名称的,查看系统命令日志
pod是k8s资源,组件运行才能产生资源
docker logs -f 容器id#docker看日志
docker ps |grep apiserver#查看k8s组件
kubectl api-resources#查看k8s资源
k8s中的namespace
kubectl get nodes
kubectl get namespaces
kubectl get po -n default#默认命名空间
kubectl get -h#查看子命令
k8s最小调度单元pod
pod里面包裹着容器。
使用yaml格式定义pod
yaml文件数组前面加-
kubectl api-versions#获取版本号
kubectl explain pod.metadata#查看pod的metadata的参数
kubectl apply -f one-pod.yaml
kubectl create -f one-pod.yaml
kubectl -n luffy exec -ti myblog -c myblog bash
docker run -ti --rm --net=container:mysql busybox sh#启动容器共享mysql的网络空间
kubectl -n luffy get po myblog -o json|wc -l#查看行数
kubectl -n luffy get po myblog -o yaml|wc -l
kubectl -n luffy get po myblog -o yaml# 查看yaml文件
kubectl -n luffy get po myblog -o yaml>exam.yaml# 输出yaml文件
kubectl create -f one-pod.yaml#从文件创建
kubectl -n luffy describe pods myblog-test#查看错误信息
docker logs --tail=1 -f 容器名称#只查看最后一行
kubectl -n luffy logs --tail=4 -f myblog -c pod名称#查看日志
#升级版本
kubectl apply -f demo-pod.yaml
#根据文件删除pod
kubectl delete -f demo-pod.yaml
# 根据pod名称删除
kubectl -n
docker rm -f
kubectl get no --show-labels#查看node
kubectl label node k8s-slave1 component=mysql# 给组件打label
volumns主机挂载,缺点:节点删除,数据消失
两种机制:LivenessProbe探针/ReadinessProbe探针
存活性探测:用于判断容器是否存活,即Pod是否为running状态,不健康则kubelet将kill掉容器,并根据容器的重启策略是否重启。如果没有这个探针,则认为永远成功。
可用性探测:用于判断容器是否正常提供服务,即容器的Ready是否为True,是否可以接收请求,如果探测失败,容器的Ready将为False
如何拿到yaml文件
kubectl -n kube-system get deployment
kubectl -n kube-system get deployment coredns -oyaml>coredns.deployment.yaml