kubernetes常用资源——secret
secretSecret 的功能类似于configmap给pod提供额外的配置信息,但是secret是一种包含少量敏感信息例如密码,令牌或秘钥的对象
Secret的名称必须是合法的DNS子域名
每个Secret的大小最多为1Mib,主要是为了避免用户创建非常大的Secret进而导致API服务器和kubelet内存耗尽,不过创建很多小的Secret也可能耗尽内存,可以使用资源配额来约束每个名字空间中的Secret个数
在通过yaml文件创建secret时,可以设置data或stringData字段,data和stringData字段都是可选的,data字段中所有的键值都必须是base64编码的字符串,如果不希望执行这种base64字符串的转换操作,也可以选择设置stringData字段,其中可以使用任何非加密的字符串作为其值。
Pod可以用三种方式的任意一种来使用Secret
作为挂载到一个或多个容器上的卷中的文件(crt文件,key文件)
作为容器的环境变量
由kubelet在为pod拉取镜像时使用(与镜像仓库的认证)
一、Secret类型:kubernetes默认支持多种不同类型 ...
kubernetes常用资源——configMap
Configmapconfigmap配置信息和镜像解耦,实现方式为将配置信息放到configmap对象中,然后在pod中作为volume挂载到pod中,从而实现导入配置的目的。
使用场景:
通过configmap给pod定义全局环境变量
通过configmap给pod传递命令行参数,如mysql -u -p 中的账户名密码可以通过configmap传递
通过configmap给pod中的容器服务提供配置文件,配置文件以挂载到容器的形式使用
注意:configmap需要在pod使用它之前创建。
pod只能使用位于同一个namespace的configmap,即configmap不能跨namespace使用
通常用语非安全加密的配置场景
configmap通常是小于1MB的配置
示例1:
[root@haproxy1 case10-configmap]# cat 1-deploy_configmap.yml
#定义configmap资源
apiVersion: v1
kind: ConfigMap
metadata:
name: nginx-config
namespac ...
kubernetes常用资源——PV/PVC
PV/PVC
PV:persistentVolume (与硬件(nfs、ceph等)对接)
是集群中已经由kubernetes 管理员配置的一个网络存储,集群中的存储资源一个集群资源,即不隶属于任何namespace,PV的数据最终存储在硬件存储,pod不能字节挂载pv,pv需要绑定给pvc并最终由pod挂载pvc使用,PV支持NFS、Ceph,商业存储或云提供商的听特定的存储等,可以自定义PV的类型是块还是文件存储,存储空间大小,访问模式等,PV的生命周期独立于Pod,即当使用PV的Pod被删除时可以对PV的数据没有影响
PVC:persistentVolumeClaim(与pod关联,与pv绑定)
PVC是对存储的请求,pod挂载PVC并将数据存储在PVC,而PVC需要绑定到PV才能使用,另外PVC在创建的时候要知道namespace,即Pod要和PVC在同一个namespace下,可以对pvc设置特定的空间大小和访问模式,使用PVC的pod在删除时也可以对PVC中的数据没有影响
用于实现pod和storage的解耦,这样我们修改storage的时候不需要修改po ...
kubernetes常用资源——deployment
Deployment副本控制器Deployment:比rs更高级的控制器,除了有rs的功能之外,还有很多高级的功能,比如最重要的滚动升级、回滚等
[root@haproxy1 case3-controller]# cat deployment.yml
#apiVersion: extensions/v1beta1
apiVersion: apps/v1
kind: Deployment
metadata:
name: nginx-deployment
spec:
replicas: 3
selector:
#app: ng-deploy-80 #rc
matchLabels: #rs or deployment
app: ng-deploy-80
#matchExpressions:
# - {key: app, operator: In, values: [ng-deploy-80,ng-rs-81]}
template:
metadata:
labels:
...
kubernetes常用资源——RC/RS
RC/RS副本控制器Replication Controller:副本控制器(selector = !=)#第一代pod副本控制器
[root@haproxy1 case3-controller]# cat rc.yml
apiVersion: v1
kind: ReplicationController
metadata:
name: ng-rc
spec:
replicas: 2
selector:
app: ng-rc-80
#app1: ng-rc-81
template:
metadata:
labels:
app: ng-rc-80
#app1: ng-rc-81
spec:
containers:
- name: ng-rc-80
image: nginx
ports:
- containerPort: 80
Repl ...
kubeasz -etcd v3 API版本数据备份与恢复
WAL是warite ahead log(预写式日志)得缩写,顾名思义,也就是在执行真正得写操作之前先写一个日志,预写日志。wal:存放预写式日志,最大得作用是记录了整个数据变化得全部历程,在etcd中,所有数据得修改在提交前,都要先写入到WAL中。
一、单机版etcd恢复数据V3 版本备份数据(单机版):
#备份
[root@etcd1 ~]# ETCDCTL_API=3 etcdctl snapshot save snapshop.db
#恢复到一个指定目录
[root@etcd1 ~]# ETCDCTL_API=3 etcdctl snapshot restore snapshop.db --data-dir=/opt/etcd-testdir-2
Deprecated: Use `etcdutl snapshot restore` instead.
2022-05-05T20:38:13+08:00 info snapshot/v3_snapshot.go:251 restoring snapshot {"path": "snap ...
kubernetes-ETCD说明及常用命令
etcd 是CoreOS团队于2013年6月发起的开源项目,它的目标是构建一个高可用的分布式键值数据库。etcd内部采用raft协议作为一致性算法,etcd基于Go语言实现官方网址:https://etcd.iogithub地址:https://github.com/etcd-io/etcd官方硬件推荐:https://etcd.io/docs/v3.5/op-guide/hardware
一、硬件配置说明:
CPU
很少有 etcd 部署需要大量 CPU 容量。典型的集群需要两到四个核心才能顺利运行。重负载的 etcd 部署,每秒服务数千个客户端或数万个请求,往往受 CPU 限制,因为 etcd 可以服务来自内存的请求。如此繁重的部署通常需要八到十六个专用核心。
内存
etcd 的内存占用相对较小,但其性能仍然取决于是否有足够的内存。etcd 服务器将积极缓存键值数据,并花费大部分其余的内存跟踪观察者。通常 8GB 就足够了。对于具有数千个观察者和数百万个键的大量部署,相应地分配 16GB 到 64GB 内存。
磁盘
快速磁盘是 etcd 部署性能和稳定性的最关键 ...
Kubernetes 安装coreDNS组件
DNS 组件历史版本有skydns、kube-dns和coredns三个,k8s1.3版本之前使用skydns,之后的版本到1.17及之间的版本使用kube-dns,目前主要使用coredns,DNS组件用于解析k8s集群中service name 所对应的ip地址官方文档:coreDNS官方文档获取官方包和yaml文件:官方包和yaml文件地址
github搜索kubernetes,找到相应的k8s版本,点击changelog需要下载这几个包:client:server:node:下载之后上传到master并解压,解压之后的目录结构如下图:相关yaml文件和插件目录,如dns,dashboard等相关二进制文件:coredns一般用coredns.yaml.base 修改
官方yaml文件:
# __MACHINE_GENERATED_WARNING__
apiVersion: v1
kind: ServiceAccount
metadata:
name: coredns
namespace: kube-system
labels:
kubernetes. ...
kubeasz 二进制安装k8s高可用集群
一、kubeasz介绍项目致力于提供快速部署高可用k8s集群的工具, 同时也努力成为k8s实践、使用的参考书;基于二进制方式部署和利用ansible-playbook实现自动化;既提供一键安装脚本, 也可以根据安装指南分步执行安装各个组件。
二、安装前准备1、集群规划
角色
数量
描述
节点ip
部署节点
1
运行ansible/ezctl命令。建议单独部署
192.168.17.130
etcd节点
3
注意etcd集群需要1,3,5…奇数个节点,一般复用master节点
192.168.17.140、192.168.17.141、192.168.17.142
master节点
3
高可用集群至少2个,这里用三个
192.168.17.130、192.168.17.131、192.168.17.132
node节点
2
运行应用负载的节点,可根据需要提升机器配置/增加节点数
192.168.17.150、192.168.17.151
harproxy
2
负责api-server的的负载均衡,配合keepalived实现api-serv ...
记录服务器被挖矿的处理方法
背景:并不是我公司的服务器被挖矿,是合作伙伴的有一台服务器的cpu连续3天被吃满,所以让我帮忙看下,因为之前也没有处理过类似的挖矿事件,所以记录一下。首先登录服务器查看相关资源使用情况:好家伙,这资源已经被占的不要不要的了。
通过观察可以看到top显示启动了很多不知道的服务,tssc用户启动的,还有esuser启动的,而他们的command都是bash,还是第一次看到这种情况。于是我单独查看某个pid号,就一个bash命令。于是我查看了下定时任务,看看有没有定时执行的脚本,发现这些是什么玩意!赶紧删除了到这个时候,看了下阿里云的报警信息,如下图:看起来应该是被植入了挖矿程序,于是赶紧将此文件下的所有内容删除但是删除之后top中的进程都还在呢,得全部kill掉,命令如下:
[esuser@iZ2ze5f6uou33ntud78dr5Z ~]$ ps -ef |grep esuser |grep bash |grep -v pts/2 |awk '{print $2}' |xargs kill
经过几分钟之后发现系统负载已经降下来了虽然操作没 ...