kubernetes-ELK日志功能
Kubernetes ELK日志 ELK = Elasticsearch + Log-pilot + Kibana搭建日志收集功能
环境情况
CentOS 7 x64
Docker-ce 19.03.2
Kubernetes v1.15.1
Kubernetes 3 * Node ( 2 Master 1 Node )
文档地址Log-pilot使用文档: https://github.com/AliyunContainerService/log-pilot/blob/master/docs/fluentd/docs.md
Log-pilot的K8s部署文档: https://www.alibabacloud.com/help/doc-detail/86552.html?spm=a2c5t.11065259.1996646101.searchclickresult.52c73384xdUKpz
Elasticsearch+Kibana的K8S的Yaml:https://github.com/kubernetes/kubernetes/tree/release-1.15/clust ...
kubernetes-PersistentVolume
简介Kubermetes对于有状态的容器应用或者对数据需要持久化的应用,不仅需要将容器内的目录挂载到宿主机的目录或者emptyDir临时存储卷,而且需要更加可靠的存储来保存应用产生的重要数据,以便容器应用在重建之后,仍然可以使用之前的数据。不过,存储资源和计算资源(CPU/内存)的管理方式完全不同。为了能够屏蔽底层存储实现的细节,让用户方便使用,同时能让管理员方便管理, Kubernetes从v1.0版本就引入PersistentVolume和PersistentVolumeClaim两个资源对象来实现对存储的管理子系统。
PersistentVolume (PV)是对底层网络共享存储的抽象,将共享存储定义为一种“资源”,比如节点(Node) 也是一种容 器应用可以“消费”的资源。PV由管理员进行创建和配置,它与共享存储的具体实现直接相关,例如GlusterFS、iSCSI、 RBD或GCB/AWS公有云提供的共享存储,通过插件式的机制完成与共享存储的对接,以供应用访问和使用。
PersistentVolumeClaim (PVC)则是用户对于存储资源的一个“申请”。就像Pod“消费” ...
kubernetes-IngressNginx
基本使用
文档地址:https://kubernetes.github.io/ingress-nginx/
下载配置文件
1wget https://raw.githubusercontent.com/kubernetes/ingress-nginx/master/deploy/static/mandatory.yaml
下载image
1234567# 获取需要下载的imagegrep image mandatory.yamlimage: quay.io/kubernetes-ingress-controller/nginx-ingress-controller:0.25.0# 下载代理下载imagedocker pull registry.cn-hangzhou.aliyuncs.com/google_containers/nginx-ingress-controller:0.25.0# 打上tagdocker tag registry.cn-hangzhou.aliyuncs.com/google_containers/nginx-ingress-controller:0. ...
kubernetes-pod
Pod基本认识
pod 是 Kubernetes 集群中能够被创建和管理的最小部署单元
每个Pod都有一个特殊的被称为“根容器”的Pause容器。Pause容器对应的镜像属于Kubernetes平台的一部分,除了Pause容器,每个Pod还包含一个或多个紧密相关的用户业务容器
Pod的状态描述
状态值
描述
Pending
API Server已经创建该Pod,但在Pod内还有一个或多个容器的镜像没有创建,包括正在下载镜像的过程。
Runnung
Pod内所有容器均已创建,且至少有一个容器处于运行状态、正在启动状态或正在重启状态。
Succeeded
Pod内所有容器均成功执行后退出,且不会再重启。
Failed
Pod内所有容器均已退出,但至少有一个容器退出为失败状态。
Unknown
由于某种原因无法获取该Pod的状态,可能由于网络通信不畅导致。
Pod的Yaml配置文件
secrets.yml
12345678apiVersion: v1kind: Secretmetadata: name: mysecrettype: Opaquedat ...
kubernetes-部署策略
Kubernetes的部署策略以下几种:
重建(recreate):停止旧版本部署新版本
滚动更新(rolling-update):一个接一个地以滚动更新方式发布新版本
蓝绿(blue/green):新版本与旧版本一起存在,然后切换流量
金丝雀(canary):将新版本面向一部分用户发布,然后继续全量发布
重建(Recreate)
特点 : 停止旧版本部署新版本
使用场景 : 最好在开发环境
yaml(版本A)
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960#deployapiVersion: apps/v1kind: Deploymentmetadata: name: web-recreate namespace: devspec: selector: matchLabels: app: web-recreate replicas: 2 # 部署两个pod template: ...
kubetnetes-pod调度
亲和性NodeAffinity(node节点亲和)
yaml
1234567891011121314151617181920212223242526272829303132333435363738apiVersion: apps/v1kind: Deploymentmetadata: name: web-demo-node namespace: devspec: selector: matchLabels: app: web-demo-node replicas: 1 template: metadata: labels: app: web-demo-node spec: containers: - name: web-demo-node image: tomcat:8-slim ports: - containerPort: 8080 affinity: nodeAffinity: requiredDuringSched ...
kubernetes-健康检查
livenessProbeexec(命令行)
livenessProbe命令行方式检测:web-dev-cmd.yaml,在容器中执行一个命令 推出返回0 算成功。
1234567891011121314151617181920212223242526272829303132#deployapiVersion: apps/v1kind: Deploymentmetadata: name: web-demo namespace: devspec: selector: matchLabels: app: web-demo replicas: 1 template: metadata: labels: app: web-demo spec: containers: - name: web-demo image: chcgolang/frps ports: - containerPort: 7500 livenessProbe: # 容器存活检查探针 ...
kubernetes-资源管理
资源对象Namespace(命名空间)
隔离
资源对象的隔离:Service,Deployment,pod
资源配额的隔离:cpu,Memory
yaml配置文件创建namespace:(namespace-dev.yaml)
12345apiVersion: v1kind: Namespacemetadata: # namespace名字 name: dev
kubectl create -f namespace-dev.yaml
创建在指定命名空间下的pod
1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253#deployapiVersion: apps/v1kind: Deploymentmetadata: name: web-demo namespace: devspec: selector: matchLabels: app: web-demo replicas: 1 template: ...
kubeadm安装kubernetes教程1.15.1
节点说明
系统类型
IP地址
节点角色
Hostname
centos-7.4
192.168.43.111
master
vmware-111
centos-7.4
192.168.43.112
worker
vmware-112
centos-7.4
192.168.43.113
master
vmware-113
因为服务器有限,所以这里设置master也承担工作负载
环境准备系统设置主机名配置
主机名必须每个节点都不一样,并且保证所有点之间可以通过hostname互相访问
1234567# 查看主机名$ hostname# 修改主机名$ hostnamectl set-hostname <your_hostname># 配置host,使所有节点之间可以通过hostname互相访问$ vi /etc/hosts# <node-ip> <node-hostname>
配置hosts文件(全部主机)
1234$ vi /etc/hosts192.168.43.111 vmware-111192.168.43.112 v ...
Mysql数据库备份
介绍
数据库备份有逻辑备份和物理备份
逻辑备份的结果为sql语句,适合所有的存储引擎
物理备份是对数据库的拷贝,对于内存表只备份结构
逻辑备份mysqldump
常用语法
123456# 备份指定表mysqldump [OPTIONS] database [table1 table2]# 备份指定的数据库mysqldump [OPTIONS] --database [OPTIONS] [DB1 DB2]# 备份全部的数据库mysqldump [OPTIONS] --all-database [OPTIONS]
mysqldump的常用命令
命令
作用
-u,–user=name
数据库用户名
-p,–password
数据库密码
–single-transaction
使用事务的方式备份,使得备份时数据库的一致性,只能应用于InnoDB存储引擎
-x,–lock-all-tables
使用锁表的方式确保数据库的一致性,应用于没有事务的存储引擎
-R,–routines
备份的时候包括存储过程
–triggers
备份的时候包括触发器
-E ...