自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

唐僧爱程序

只为真经!

  • 博客(59)
  • 资源 (1)
  • 收藏
  • 关注

原创 Kubernetes面试之Deployment和Statefulset区别

Deployment适合场景无状态的应用特点1.pod之间没有顺序2.所有pod共享存储3.pod名字包含随机数字4.service都有ClusterIP,可以负载均衡StatefulSet适合场景有状态的应用特点1.部署、扩展、更新、删除都要有顺序2.每个pod都有自己存储,所以都用volumeClaimTemplates,为每个pod都生成一个自己的存储,保存自己的状态3.pod名字始终是固定的4.service没有ClusterIP,是headles

2020-08-21 11:05:58 6569

原创 1min学会nginx常用配置

nginx常规配置语法格式 location [=|~|~*|^~|@] /uri/ { … } 1.“= ”,“^~ ”,“~ ”,“~* ”和不带任何前缀(因为[ ] 表示可选,可以不要的),表达不同的含义2.查询字符串不在URI范围内。例如:/films.htm?fid=123 的URI 是/films.htm 。前缀分类1.分类正则location:~ ”和“~* ”前缀表示正则location ,“~ ”区分大小写,“~* ”不区分大小写普通location:“=”,

2021-07-01 11:30:31 143

原创 2021-06-27 删除redis的key

删除redis keyredis 通配符 批量删除keyRedis 中 DEL指令支持多个key作为参数进行删除 但不支持通配符,无法通过通配符批量删除key,不过我们可以借助 Linux 的管道和 xargs 指令来完成这个动作。比如要删除所有以user开头的key 可以这样实现:[root@dev_opayredis src]# redis-cli keys "user*"1) "user1"2) "user2"[root@dev_opayredis src]# redis-cli key

2021-06-27 18:26:06 282

原创 kubectl滚动更新资源

rolloutManage the rollout of a resource. Valid resource types include: * deployments * daemonsets * statefulsetsExamples: # Rollback to the previous deployment kubectl rollout undo deployment/abc # Check the rollout status of a da

2021-06-24 14:54:22 259

原创 git命令

git全局配置与创建git仓库

2021-06-23 16:21:43 86

原创 k3s停止命令

暂停k3s命令节点csnode-1 master节点systemctl stop k3ssystemctl disable k3sk3s-killall.shdocker ps -a|grep -v CONTAINER|awk '{print $1}'|xargs docker stopdocker ps -a|grep -v CONTAINER|awk '{print $1}'|xargs docker rmsystemctl stop dockersystemctl disable

2021-06-23 16:15:36 3247

原创 Java时间转换笔记

代码import java.text.ParseException;import java.text.SimpleDateFormat;import java.util.Date;import java.util.TimeZone;public class Time { public static void main(String[] args) { String time1 = "2021-04-19T09:39:21"; String time3 =

2021-04-19 17:59:10 83

原创 k8s pod之间DNS解析问题:Temporary failure in name resolution

问题之前k8s网络运行正常,一段时间后,前端pod无法通过域名访问后端pod,ping提示错误:Temporary failure in name resolution如果看思路请顺序阅读如果看结论,请跳过排查过程排查排查过程查看coredns是否正常运行# kubectl get po -n kube-system|grep corednscoredns-85dc89d45b-b9gtq 1/1 Running 0 5

2021-04-14 16:04:07 3075

原创 kubectl top查看资源占用

需要安装metric server,一般部署在kube-system空间查看node资源使用[root@master1 ~]# kubectl top node master1NAME CPU(cores) CPU% MEMORY(bytes) MEMORY% master1 165m 9% 4653Mi 66% 查看pod资源[root@master1 ~]# kubectl top pod --all-na

2021-03-30 10:41:25 3833

原创 排查Kubernetes容器不断连接MySQL,导致MySQL连接数饱和的问题->k8s抓包

1.检查MySQL连接数多的IP邮件收到监控报警,MySQL连接数过多,导致MySQL主机内存超载,达到98.45%mysql [(none)]> show processlist;发现同一个IP通过很多端口连接,但都是sleep状态如 1.2.3.4:48866连接检查MySQL客户端主机的连接切换到1.2.3.4主机netstat -anp|grep 48866发现没有记录,应该是1.2.3.4主机连接MySQL主机不成功,重新换了端口继续连接,直接抓白tcpdump -i

2021-03-26 14:42:32 563

原创 Kafka自带脚本使用

消费者/app/kafka_2.11-1.1.0/bin/kafka-console-consumer.sh --bootstrap-server kafka1:9092,kafka2:9092,kafka3:9092 --topic topic_name --from-beginning

2020-09-08 10:04:34 292

原创 Windows查看WiFi密码的命令

netsh wlan show profile name=“WiFi名字” key=clear

2020-09-04 10:36:55 280

原创 Linux添加磁盘步骤

分区# fdisk /dev/sdbcylinder 磁柱Start、End表示开始磁柱和结束磁柱格式化文件系统# mkfs -t ext4 /dev/sdb1挂载临时挂载# mount /dev/sdb1 /a/b注意: /a/b为挂载点验证# df -h|head永久挂载# vi /etc/fstab添加如下内容:/dev/vdb5 /var/lib/kubelet ext4 defaults 0 0或UUID=xxxx ext4 default

2020-09-02 15:38:33 153

原创 Tensorflow中placeholder 与 Variable的区别

Variable1.主要是用于训练变量之类的。比如我们经常使用的网络权重,偏置。 2.值得注意的是Variable在声明是必须赋予初始值。在训练过程中该值很可能会进行不断的加减操作变化。 placeholder1.也是用于存储数据,但是主要用于session的feed_dict的配合,接收输入数据用于训练模型等。2.placeholder值在训练过程中会不断地被赋予新的值,用于批训练,基本上其值是不会轻易进行加减操作。3.placeholder在命名时是不会需要赋予值得,其被赋予值得时间实在

2020-08-21 16:33:43 314

原创 Kubernetes面试之ready探针和live探针区别

ready探针作用表示应用可以接收请求更多ReadinessProbe探测失败,则容器的Ready将为False,控制器将此Pod的Endpoint从对应的service的Endpoint列表中移除,从此不再将任何请求调度此Pod上,直到下次探测成功。通过使用Readiness探针,Kubernetes能够等待应用程序完全启动,然后才允许服务将流量发送到新副本。live探针更多表示引用正常运行,没有发生故障参考链接K8s探针...

2020-08-21 11:02:58 284

原创 运维三剑客之awk

三剑客:grep、awk、sedgrep:数据查找定位-r/R 递归查找awk:数据切片并格式化输出sed: 数据修改awk2.1格式:awk [options] 'Pattern{Action}' file-->BEGIN { …. initialization awk commands …}{ …. awk commands for each line of the file…}END { …. finalization awk commands …}例子:l

2020-08-14 17:33:34 100

原创 指定k8s的namespace和label key,获得对应namespace的pod名称、pod宿主机、宿主机标签

#!/bin/sh# $1 is namespace namepod=`kubectl get po -n $1 -o wide |awk '{print $1,$7}'|grep -v NODE`# $2 is label keynodelabels=`kubectl get node -L hanclouds.com|grep -v NAME|awk '{print $1,$6}'`echo ""|awk -v pod="$pod" -v nodelabels="$nodelabels"

2020-08-14 16:05:28 852

原创 访问k3s集群的配置文件位置和一些修改

k8s配置文件位置/etc/kubernetes/admin.confk3s配置文件位置/etc/rancher/k3s.k3s.yaml改变配置文件的服务器地址如果不是集群主机访问集群,就需要修改配置文件的server字段,只需将server的IP改成master的主机IP即可。...

2020-08-14 15:41:02 2903

原创 Rancher是如何实现查看Pod日志?

Rancher由多个组件组成rkt: Rancher用于安装k8s的工具ui: Rancher web ui的后台,nodejs编写更多组件的详细列表见:https://github.com/rancher/rancher/blob/master/vendor.confRancher通过websocket与容器的日志建立连接我们可以通过Rancher web ui查看容器日志,按F12得到websocket的连接地址、路径和参数,如图分析Rancher ui的源码,并通过路由router

2020-08-06 09:38:36 7382 1

原创 kubespray部署k8s version 1.0

一、部署原理基于vagrant和virtualbox,通过kubespray项目,控制ansible,部署高可用的k8s集群。二、部署环境1.部署拓扑2.部署软硬件硬件:物理机 CPU:Double CPU,14 core,2 threads per core,CPU Intel(R) Xeon(R) Gold 5120 CPU @ 2.20GHz内存:64G软件:CentOS 7:kernel 3.10.0-327.22.2.el7.x86_64vagrant:

2020-08-05 20:47:59 446

原创 Kubernetes HA

背景由于当前测试开发环境中,单master的Kubernetes集群存在单点故障,为提升集群的可用性,需要对集群做高可用配置方案1.Kubernetes高可用主要分两个方面:第一,Kubernetes matser高可用kube-apisever无状态,天生可用于分布式高可用kube-controller-manager打开--leader-elect=true,形成只有一个leader可用,其他实例standbykube-scheduler同上第二,Kubernetes etcd

2020-08-05 20:41:16 150

原创 runc的编译安装

安装epel库yum search epelyum install epepl-xxx -y安装golangyum install go验证golanggo version配置go环境变量vi ~/.bash_profile添加如下内容:export PATHexport GOROOT=/usr/lib/golangexport GOPATH=$HOME/goexport PATH=$PATH:$GOROOT/bin让环境变量生效:source ~/.ba.

2020-08-05 20:35:40 1156

原创 ansible的安装与使用+kubespray部署k8s

-安装epel库# yum -y install epel-release安装pip,python3自带pip3# yum -y install python-pip# 升级pippip install --upgrade pip# 检查版本pip --versionpip 19.0.3 from /usr/lib/python2.7/site-packages/pip (python 2.7)通过pip安装ansible等必须工具# pip install ansible

2020-08-05 20:31:34 335

原创 2020-08-05 docker占用磁盘情况和清理

查看磁盘占用情况方式一docker system df -v方式二cd /var/lib/containers/du -sh *清理磁盘占用docker system prune命令可以用于清理磁盘,删除关闭的容器、无用的数据卷和网络,以及dangling镜像(即无tag的镜像)。docker system prune -a命令清理得更加彻底,可以将没有容器使用Docker镜像都删掉。注意,这两个命令会把你暂时关闭的容器,以及暂时没有用到的Docker镜像都删掉了...

2020-08-05 20:21:38 142

原创 2020-08-05 Kubernetes调皮的时区问题

修改CentOS的时区 立即生效本以为打开PodPreset万事大吉,马上吃鸡!结果是我想多了,系统时区咋还在西四区,一查西四区:西四区的国家有:智利、巴西、加拿大(东部的一部分)。我咋跑这么远了,不会废话,做正事。尝试N种方法:1.修改TZ环境变量,source一波,当前session生效,重开session,然并卵,现在又不能重启查看,是否可以生效2.执行tzselect,立即生效,重启哦豁3.ntpdate+硬件同步命令hwclock --systohc,太麻烦,因为感觉不是时间问题,

2020-08-05 10:33:50 182

原创 CentOS7 增加网卡的配置文件

Vagrant利用VirtualBox启动虚拟机之后,虚拟机的一个网卡没有配置文件,通过复制其他设备的配置文件,加以修改,变成目标网卡的配置文件,步骤如下:# cp /etc/sysconfig/network-scripts/ifcfg-enp0s3 /etc/sysconfig/network-scripts/ifcfg-enp0s9# vi /etc/sysconfig/network-scripts/ifcfg-enp0s9修改成如下便可:TYPE=EthernetPROXY_M

2020-07-31 14:50:58 789

原创 harbor切换主机,ip地址改变,需要对应的修改harbor配置

错误harbor切换主机不同的ip地址,需要对应的修改harbor配置,否则出现以下错误:Error response from daemon: Get http://192.168.1.111/v2/library/kube-scheduler/manifests/v1.13.3: Get http://192.168.1.110/service/token?scope=repository%3Alibrary%2Fkube-scheduler%3Apull&service=harbor-re

2020-07-30 16:14:43 3561 2

原创 CentOS 7.6升级内核

小版本升级sudo yum list kernelsudo yum update -y kernel重启生效,若要修改默认启动顺序,见下文大版本升级查看系统内核版本查看内核# uname -r升级内核导入elrepo的key# rpm -import https://www.elrepo.org/RPM-GPG-KEY-elrepo.org安装elrepo的yum源# rpm -Uvh http://www.elrepo.org/elrepo-release-7.0

2020-07-30 16:13:00 417

原创 虚拟机进程经常触发OOM,被物理机杀死问题与解决方案

报错Jun 19 17:28:17 localhost kernel: Node 1 Normal: 3323*4kB (UEM) 2500*8kB (UEM) 876*16kB (UEM) 5*32kB (U) 0*64kB 0*128kB 0*256kB 0*512kB 0*1024kB 0*2048kB 0*4096kB = 47468kBJun 19 17:28:17 localhost kernel: Node 0 hugepages_total=0 hugepages_free=0 huge

2020-07-30 16:11:57 1021

原创 k8s中emptydir、hostpath、localvolume的区别

应用场景特殊使用场景需求,如需要个临时存储空间,运行cAdvisor需要能访问到node节点/sys/fs/cgroup的数据,做本机单节点的k8s环境功能测试等等。容器集群只是做小规模部署,满足开发测试、集成测试需求。作为分布式存储服务的一种补充手段,比如我在一台node主机上插了块SSD,准备给某个容器吃小灶。目前主流的两个容器集群存储解决方案是ceph和glusterfs,二者都是典型的网络分布式存储,所有的数据读、写都是对磁盘IO和网络IO的考验,所以部署存储集群时至少要使用万兆的光纤网卡

2020-07-30 16:09:22 1256

原创 问题:[PLEG is not healthy: pleg was last seen active 3m46.303313348s ago; threshold is ...

现象k8s node ready 和 not ready重复出现分析某个deployment terminating无法完成,导致pleg一直不健康,kubelet有重启机制,开始ready,健康检查不通过认为自己not ready,从而状态重复切换解决把一直terminating的deployment删了,容器删不掉,重启了docker,删除,然后就没有not ready,只是在重启docker的时候,同时启动太多容器,太耗费cpu,导致kubelet短暂not ready参考链接

2020-07-30 16:07:53 1749

原创 强制删除pod

# kubectl delete pod xxx -n yyy --force --grace-period=0

2020-07-30 16:01:54 306

原创 Kubernetes删除一直Terminating状态的namespace

方法一方法一:# kubectl delete ns xxx --grace-period=0 --force方法二方法二:# kubectl edit ns xxx{ "kind": "Namespace", "apiVersion": "v1", "metadata": { "name": "xxx", "selfLink": "/api/v1/namespaces/openshift", "uid": "0a659

2020-07-30 16:00:52 351

原创 问题:虚拟机cpu增高,导致假死

分析Jul 24 19:15:58 node6 kernel: NMI watchdog: BUG: soft lockup - CPU#7 stuck for 23s! [runc:[1:CHILD]:16073]runc导致的软死锁查看kdump的日志定位更细致的错误:/var/crash/ 没有任何内容原因机架虚拟机内核版本太低:[root@node6 log]# uname -r3.10.0-862.el7.x86_64 阿里云虚拟机内核版本没有这样问题:3.10.0-957.

2020-07-30 15:57:50 911

原创 k8s、dockershim、containershim、容器运行时的关系

kubelet---/run/dockershim.sock[grpc]--- --->dockershim[cni,适配不同容器rkt,docker] | | | | | |

2020-07-30 15:54:26 783

原创 PostgreSQL增加用户和授权操作

切换用户su - postgres 登陆PostgreSQLpsql创建用户CREATE USER saas_atom WITH PASSWORD 'saas_atom';管理员创建数据库create database timescaledb;切换到timescaledb数据库\c timescaledb;管理员在数据库timescaledb创建schemacreate schema saas_atom;给用户授予数据库级别权限(数据库->shcema->t

2020-07-30 11:10:10 2076

原创 K8s容器的资源单位理解

CPU1 core = 1000 milli core1m相当于物理机的一个超线程小数位精确到0.01,即最小精度不能小于1mMemory整数 128974848字节定点整数 129e6字节M 1000进制 129M字节Mi 1024进制 123Mi字节链接官网容器资源解释...

2020-07-27 15:13:37 1161 2

原创 k8s容器的命名规则

k8s版本Client Version: version.Info{Major:"1", Minor:"15", GitVersion:"v1.15.3", GitCommit:"2d3c76f9091b6bec110a5e63777c332469e0cba2", GitTreeState:"clean", BuildDate:"2019-08-19T11:05:50Z", GoVersion:"go1.12.9", Compiler:"gc", Platform:"linux/amd64"}Serv.

2020-07-27 15:09:01 2305

原创 Java字符串打印后包含双引号方法

目的Java字符串标准输出打印包含双引号方法方法将要打印的双引号进行转义代码@SpringBootTest(classes = {SpringTestApplication.class})class SpringTestApplicationTests { @Test void contextLoads() { String str = "{\"key\":\"value\"}"; System.out.println(str); }

2020-07-08 17:45:12 3727 1

原创 Spring Cloud之nacos尝试

nacos-微服务配置管理添加依赖<dependency> <groupId>com.alibaba.cloud</groupId> <artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId> <version>2.1.2.RELEASE</version></dependency>bootstrap

2020-06-10 15:38:39 180

cert-manager-v0.6.7.tgz

cert-manager-v0.6.7.tgz

2020-08-03

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除