处理Ceph OSD Down
查看OSD状态12345678910111213141516171819202122232425# deploy节点执行[root@yz-node1 ~]# ceph osd treeID CLASS WEIGHT TYPE NAME STATUS REWEIGHT PRI-AFF -1 254.60396 root default -3 87.29279 host yz-node1 0 hdd 7.27440 osd.0 up 1.00000 1.00000 1 hdd 7.27440 osd.1 up 1.00000 1.00000 ...-5 87.29279 host yz-node2 10 hdd 7.27440 osd.10 ...
kubeadm集群证书续签
12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220 ...
容器探针
探针类型:livenessProbe(存活检查):如果检查失败,将杀死容器,根据Pod的RestartPolicy来操作
readinessProbe(就绪检查):如果检查失败,Kubernetes会把Pod从service endpoints中剔除
检查方法:httpGet:发送HTTP请求,返回200-400范围状态码为成功;
exec:执行Shell命令返回状态码是0为成功;
tcpSocket:发起TCP Socket建立成功;
探针演示12345678910111213141516171819202122232425262728293031323334apiVersion: v1kind: Podmetadata: labels: test: liveness name: liveness-execspec: containers: - name: liveness image: busybox args: - /bin/sh - -c - touch /tmp/healthy; sleep ...
Init Controller容器
init container初始容器:基本支持所有普通容器特征;优先普通容器执行;一个Pod里面就可以有一个或者多个initC;应用场景:控制普通容器启动,初始容器完成后才会启动业务容器;初始配置,例如下载应用配置文化,注册信息等;
Pod能够具有多个容器,应用运行在容器里面,但是他也可能有一个或多个先于应用容器启动的Init容器;
Init容器与普通的容器非常相似,具有如下两点:1》Init容器总是运行到成功完成为止;2》每个Init容器都必须在下一个init容器启动之前成功完成;
如果pod的init容器失败,k8s会不断的重启该pod,知道init容器成功为止,然而如果pod对应的restartPolicy为Never,就不会重启;
如果Pod重启,所有Init容器必须重新执行;
InitC得作用initC作用:
安全性高 ,可以在业务容器前完成拉取外部代码文件等等一系列的操作,拉取完成之后容器销毁初始容器,将数据发送给业务容器;
InitC实例12345678910111213141516171819202122232425apiVersion: v1kind: Podmeta ...
PV动态供给演示(nfs)
pv动态供给演示(nfs)动态供给插件
1https://github.com/kubernetes-retired/external-storage/tree/master/nfs-client/deploy
部署Stroage插件创建StorageClass12345678[root@pool1 k8s_yaml]# cat class.yaml apiVersion: storage.k8s.io/v1kind: StorageClassmetadata: name: managed-nfs-storageprovisioner: fuseim.pri/ifsparameters: archiveOnDelete: "true" #---设置为"false"时删除PVC不会保留数据,"true"则保留数据
部署nfs插件1234567891011121314151617181920[root@pool1 k8s_yaml]# cat deployment.yaml …… containers: ...
PV访问模式、回收策略、状态说明
AccessModes(访问模式)AccessModes是用来对PV进行访问模式得设置,用于描述用户应用对存储资源的访问限制;
ReadWriteOnce(RWO):读写权限,但是之恩那个被单个节点挂载
ReadOnlyMany(ROX):只读权限,可以被多个节点挂载
ReadWriteMany(RWX):读写权限,可以被多个节点挂载
Reclaim Polocy(回收策略)目前Pv支持得三种策略:
Retain(保留):保留数据,需要管理员手工清理数据
Recycle(回收):清除pv中的数据,效果相当于执行rm -rf {挂载点目录}/*
Delete(删除):与PV相连的后端存储同时删除
Status(状态)一个pv得生命周期,可能会处于四种不同阶段
Available(可用):表示可用状态,还未被任何PVS绑定
Bound(已绑定):表示pv已经被pvs绑定
Released(已释放):pvs已被删除,但是资源还未被集群重新声明
Failed(失败):表示该pv得自动回收失败
PV静态供给演示(nfs)
pv静态供给演示(nfs)部署Pv123456789101112[root@pool1 k8s_yaml]# vi deploy-static-PV.yaml apiVersion: v1kind: PersistentVolumeClaimmetadata: name: my-pvcspec: accessModes: - ReadWriteMany resources: requests: storage: 5Gi[root@pool1 k8s_yaml]# kubectl apply -f deploy-static-PV.yaml
部署Pvc1234567891011121314[root@pool1 k8s_yaml]# vi deploy-static-PVC.yaml apiVersion: v1kind: PersistentVolumemetadata: name: my-pvspec: capacity: storage: 5Gi accessModes: - ReadWriteMany nfs: server: ...
网络卷存储NFS
网络存储卷:NFS演示:安装nfs服务123456789101112131415[root@pool1 k8s_yaml]# yum -y install nfs-utils[root@pool1 k8s_yaml]# vi /etc/exports/data/k8s_data *(rw,no_root_squash)[root@pool1 k8s_yaml]# mkdir /data/k8s_data[root@pool1 k8s_yaml]# systemctl start nfs[root@pool1 k8s_yaml]# systemctl enable nfsCreated symlink from /etc/systemd/system/multi-user.target.wants/nfs-server.service to /usr/lib/systemd/# 注:每个Node上都要部署nfs服务;# 测试Node客户端挂载服务端目录[root@pool2 ~]# mount -t nfs 172.16.1.20:/data/k8s_data /mnt……[root@p ...
HostPath以及emptyDir本地存储
节点存储卷:hostPath演示:将宿主机/tmp目录挂载到容器/data目录12345678910111213141516171819202122232425262728293031323334353637[root@pool1 k8s_yaml]# vi hostPath-pod.yaml apiVersion: v1kind: Podmetadata: name: hostpath-podspec: containers: - name: con-pod image: centos command: ["bash","-c","echo Pod is Running;sleep 36000"] # 防止容器退出 volumeMounts: - name: cache-volume mountPath: /data volumes: - name: cache-volume hostPath: path: /tmp type: Directory[roo ...
应用程序配置文件存储:Secret
应用程序配置文件存储:SecretSecret支持存储的类型
内置类型
用法
Opaque
用户定义的任意数据
kubernetes.io/service-account-token
服务账号令牌
kubernetes.io/dockercfg
~/.dockercfg 文件的序列化形式
kubernetes.io/dockerconfigjson
~/.docker/config.json 文件的序列化形式
kubernetes.io/basic-auth
用于基本身份认证的凭据
kubernetes.io/ssh-auth
用于 SSH 身份认证的凭据
kubernetes.io/tls
用于 TLS 客户端或者服务器端的数据
bootstrap.kubernetes.io/token
启动引导令牌数据
Secret演示:创建Secret12345# 首先,对用户名和密码进行base64加密[root@pool1 k8s_yaml]# echo -n 'admin' | base64YWRtaW4=[root@pool1 ...
