<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[Jerry_Pan1990的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/Jerry_Pan1990</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; Jerry_Pan1990]]></copyright><item><title><![CDATA[重新学习基础： 用C++写了一遍快速排序]]></title><link>https://blog.youkuaiyun.com/Jerry_Pan1990/article/details/106429221</link><guid>https://blog.youkuaiyun.com/Jerry_Pan1990/article/details/106429221</guid><author>Jerry_Pan1990</author><pubDate>Fri, 29 May 2020 17:10:04 +0800</pubDate><description><![CDATA[/*
 * 316-quicksort.cpp
 *
 *  Created on: 2020年5月28日
 *      Author: panzhengji
 */

#include&lt;string&gt;
#include&lt;iostream&gt;

using std::cout;
using std::endl;


void swap(int p_int[], int first , int end){
	int tmp = p_int[end];
	p_int[end]  = p.]]></description><category></category></item><item><title><![CDATA[关于Git版本回退]]></title><link>https://blog.youkuaiyun.com/Jerry_Pan1990/article/details/105222888</link><guid>https://blog.youkuaiyun.com/Jerry_Pan1990/article/details/105222888</guid><author>Jerry_Pan1990</author><pubDate>Tue, 31 Mar 2020 15:42:17 +0800</pubDate><description><![CDATA[最近公司使用了git，之前都使用的是svn，git玩得不是很溜，现在重新学习一下。

 今天主要探讨的是回退，因为最近我们分支上有人做了回退操作，我这边pull拉取，发现出了问题，部分文件没有跟着远端版本回退，纳闷了很久，最后通过 执行 git reset &lt;回退版本&gt; 后，重新 commit 解决了。

 参考了这些资料，写得还是蛮不错的：

先看原理：

 三种 rese...]]></description><category></category></item><item><title><![CDATA[更新linux内核及其组件]]></title><link>https://blog.youkuaiyun.com/Jerry_Pan1990/article/details/103890634</link><guid>https://blog.youkuaiyun.com/Jerry_Pan1990/article/details/103890634</guid><author>Jerry_Pan1990</author><pubDate>Wed, 08 Jan 2020 14:24:57 +0800</pubDate><description><![CDATA[Docker对Linux内核版本的最低要求是3.10。目前Linux内核已经发布到 5.4，为了更好使用docker和k8s，需要对公司相关CentOS 7内核进行升级。

下载公钥


# rpm --import https://www.elrepo.org/RPM-GPG-KEY-elrepo.org

安装elrepo repo


rpm -Uvh http://www.elrepo.o...]]></description><category></category></item><item><title><![CDATA[K8s Namespace无法删除解决办法、思路、原理]]></title><link>https://blog.youkuaiyun.com/Jerry_Pan1990/article/details/103633627</link><guid>https://blog.youkuaiyun.com/Jerry_Pan1990/article/details/103633627</guid><author>Jerry_Pan1990</author><pubDate>Fri, 20 Dec 2019 15:45:27 +0800</pubDate><description><![CDATA[情况：

Kubectl delete ns XXXX 后， namespace 一直处于 Terminating 状态。

使用：

kubectl delete ns monitoring --grace-period=0 –force

后，也无法删除。



原因分析：

删除时，报错：

warning: Immediate deletion does not wait for con...]]></description><category></category></item><item><title><![CDATA[ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/tmp/mysql.sock' (2)]]></title><link>https://blog.youkuaiyun.com/Jerry_Pan1990/article/details/103292637</link><guid>https://blog.youkuaiyun.com/Jerry_Pan1990/article/details/103292637</guid><author>Jerry_Pan1990</author><pubDate>Thu, 28 Nov 2019 14:18:22 +0800</pubDate><description><![CDATA[错误信息：

ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/tmp/mysql.sock' (2)

出现问题原因：

有可能是 my.cnf 配置文件中设置了 [mysqld] 的参数 socket ，而没有设置[client]的参数socket

mysql.sock 文件有什么用：

mysq...]]></description><category></category></item><item><title><![CDATA[redis连接偶尔会重置（Mark一个问题，还未彻底解决）]]></title><link>https://blog.youkuaiyun.com/Jerry_Pan1990/article/details/103273216</link><guid>https://blog.youkuaiyun.com/Jerry_Pan1990/article/details/103273216</guid><author>Jerry_Pan1990</author><pubDate>Wed, 27 Nov 2019 13:52:10 +0800</pubDate><description><![CDATA[客户端在连接redis推送一次数据成功后，第二次使用相同tcp端口推送时，会发送RST重置。
redis中有参数可以设置，避免这种现象吗？


第一次正常推送数据：
第二次推送数据reset：





个人推测是因为 redis 的超时时间与服务器的超时时间不一致导致：

服务器tcp超时时间，通过该命令查看为 60 s

sysctl -a | grep net.ipv4.tcp_fin_t...]]></description><category></category></item><item><title><![CDATA[生产环境k8s偶发超时问题排查及解决]]></title><link>https://blog.youkuaiyun.com/Jerry_Pan1990/article/details/103201866</link><guid>https://blog.youkuaiyun.com/Jerry_Pan1990/article/details/103201866</guid><author>Jerry_Pan1990</author><pubDate>Mon, 25 Nov 2019 15:07:16 +0800</pubDate><description><![CDATA[前言： 凡是有明确报错的问题，都是能很快解决的，真正难以解决和排查的，是偶发且笼统报错的问题。 这里记录整个解决的过程，期间有走过弯路，有思维局限，但庆幸最终找到了原因，正常把我们系统上线到 k8s 平台了。



问题表现：

 生产某套应用访问时，偶尔会报 timed out 。相同的配置在 开发、测试、预生产都能正常运行。



排查思路：

 1、 首先，因为这个问题是偶发性的...]]></description><category></category></item><item><title><![CDATA[封装一个带有tcpdump工具的镜像，在容器中使用tcp抓包]]></title><link>https://blog.youkuaiyun.com/Jerry_Pan1990/article/details/103234441</link><guid>https://blog.youkuaiyun.com/Jerry_Pan1990/article/details/103234441</guid><author>Jerry_Pan1990</author><pubDate>Mon, 25 Nov 2019 11:18:43 +0800</pubDate><description><![CDATA[之前的一篇文章：https://blog.youkuaiyun.com/Jerry_Pan1990/article/details/102940349也写过这个功能，但是当时因为刚刚接触，因此走了一点弯路，所以在这里再水一篇。

之前的文章中，使用的是源码包进行安装，所以两种安装方式在这里都进行一下介绍：

方法一（推荐）： 使用 apt-get 进行安装（我们的tomcat、nginx等基础镜像都是基于u...]]></description><category></category></item><item><title><![CDATA[修复由于docker、k8s的引擎不一致导致的报错: 调整为cgroups]]></title><link>https://blog.youkuaiyun.com/Jerry_Pan1990/article/details/103233485</link><guid>https://blog.youkuaiyun.com/Jerry_Pan1990/article/details/103233485</guid><author>Jerry_Pan1990</author><pubDate>Mon, 25 Nov 2019 10:35:05 +0800</pubDate><description><![CDATA[k8s版本：1.15

docker版本：18.09.7

报错信息：


 W0701 15:05:59.697391    9931 watcher.go:87] Error while processing event ("/sys/fs/cgroup/devices/libcontainer_34389_systemd_test_default.slice": 0x40000100 == ...]]></description><category></category></item><item><title><![CDATA[K8s节点重置、加入集群]]></title><link>https://blog.youkuaiyun.com/Jerry_Pan1990/article/details/103233203</link><guid>https://blog.youkuaiyun.com/Jerry_Pan1990/article/details/103233203</guid><author>Jerry_Pan1990</author><pubDate>Mon, 25 Nov 2019 10:02:07 +0800</pubDate><description><![CDATA[由于物理机迁移、网络环境发生变更，可能导致集群结构的破坏。

1、 确认集群中是否还存在该节点：
Kubectl get nodes

2、 确认网络环境是否通畅：
可以通过 ping 该物理机IP

3、 确认物理机是否正常：
是否可以登录
登录后查看kubelet是否正常启动： systemctl status kubelet
查看内存情况： free –h
查看磁盘情况： ...]]></description><category></category></item><item><title><![CDATA[k8s环境物理机切换DNS后不能立即生效问题解决]]></title><link>https://blog.youkuaiyun.com/Jerry_Pan1990/article/details/103086382</link><guid>https://blog.youkuaiyun.com/Jerry_Pan1990/article/details/103086382</guid><author>Jerry_Pan1990</author><pubDate>Fri, 15 Nov 2019 15:34:27 +0800</pubDate><description><![CDATA[今天公司DNS服务器进行地址切换，出现物理机可以解析域名，但是k8s容器内部无法解析相应域名，应用报错：



 由于k8s内部的域名解析都是通过coredns进行的，所以使用 describe查看了一下 coredns，发现coredns通过 configmap 挂载了物理机上的 /etc/resolv.conf 

 解决办法：

 重启k8s的 coredns：

kube...]]></description><category></category></item><item><title><![CDATA[kubernetes之network policy]]></title><link>https://blog.youkuaiyun.com/Jerry_Pan1990/article/details/103024536</link><guid>https://blog.youkuaiyun.com/Jerry_Pan1990/article/details/103024536</guid><author>Jerry_Pan1990</author><pubDate>Tue, 12 Nov 2019 11:00:04 +0800</pubDate><description><![CDATA[Network policy：设置pod进出网络的策略，k8s本身并不支持，主要靠以下网络插件来支持。

calico
	Romana
	Weave
network policy 策略模型


apiVersion: networking.k8s.io/v1
kind: NetworkPolicy
metadata:
  name: test-network-policy
  namespace:...]]></description><category></category></item><item><title><![CDATA[排查ingress 404报错的方法--附：在容器中使用tcpdump抓包]]></title><link>https://blog.youkuaiyun.com/Jerry_Pan1990/article/details/102940349</link><guid>https://blog.youkuaiyun.com/Jerry_Pan1990/article/details/102940349</guid><author>Jerry_Pan1990</author><pubDate>Wed, 06 Nov 2019 18:15:33 +0800</pubDate><description><![CDATA[出现这个问题，一般是由于路由不通导致的，需要进行抓包排查。



首先要解决的问题是，如何在 ingress-controller 容器中安装抓包工具。



1、由于 ingress-controller 的mandotory.yaml 中安全选项使用的是 33 用户，安装不了程序，因此咱们需要先修改spec.containers.securityContext下的配置

securit...]]></description><category></category></item><item><title><![CDATA[K8s-Ingress高可用IP透传方案]]></title><link>https://blog.youkuaiyun.com/Jerry_Pan1990/article/details/102939900</link><guid>https://blog.youkuaiyun.com/Jerry_Pan1990/article/details/102939900</guid><author>Jerry_Pan1990</author><pubDate>Wed, 06 Nov 2019 18:07:52 +0800</pubDate><description><![CDATA[简介：

 k8s暴露服务的方式有以下几种：

Proxy + clusterIP
	NodePort
	LoadBalancer
	Ingress


Proxy + ClusterIP
自定义代理 + 集群内存IP





有一些场景下，你得使用 Kubernetes 的 proxy 模式来访问你的服务：

• 由于某些原因，你需要调试你的服务，或者需要直接通过笔记本电脑去访问...]]></description><category></category></item><item><title><![CDATA[获取用户Ip地址通用方法与常见安全隐患(HTTP_X_FORWARDED_FOR)]]></title><link>https://blog.youkuaiyun.com/Jerry_Pan1990/article/details/102488059</link><guid>https://blog.youkuaiyun.com/Jerry_Pan1990/article/details/102488059</guid><author>Jerry_Pan1990</author><pubDate>Thu, 10 Oct 2019 18:19:09 +0800</pubDate><description><![CDATA[分析过程
这个来自一些项目中，获取用户Ip，进行用户操作行为的记录，是常见并且经常使用的。 一般朋友，都会看到如下通用获取IP地址方法。



function getIP() {
if (isset($_SERVER['HTTP_X_FORWARDED_FOR'])) {
$realip = $_SERVER['HTTP_X_FORWARDED_FOR'];
} elseif (isset($...]]></description><category></category></item><item><title><![CDATA[解决eureka高可用集群在k8s环境无法正常启动的问题]]></title><link>https://blog.youkuaiyun.com/Jerry_Pan1990/article/details/102476934</link><guid>https://blog.youkuaiyun.com/Jerry_Pan1990/article/details/102476934</guid><author>Jerry_Pan1990</author><pubDate>Thu, 10 Oct 2019 11:16:53 +0800</pubDate><description><![CDATA[昨天遇到一个问题，原本在非 k8s 环境下可以运行的 eureka 集群，上到 k8s 环境后，就无法运行。

  这里记录一下解决问题的过程：

  kubectl logs -f XXX -n XXX 看日志后，报错：



com.netflix.discovery.shared.transport.TransportException: Cannot execute re...]]></description><category></category></item><item><title><![CDATA[解决 k8s 限制内存后 还出现 OOM 错误的问题：资源整合]]></title><link>https://blog.youkuaiyun.com/Jerry_Pan1990/article/details/101773313</link><guid>https://blog.youkuaiyun.com/Jerry_Pan1990/article/details/101773313</guid><author>Jerry_Pan1990</author><pubDate>Mon, 30 Sep 2019 15:04:51 +0800</pubDate><description><![CDATA[如果应用所使用的 java 版本在 8及8以下， JVM 在没有认为设定 Xmx Xms 时， 会根据 宿主机的内存进行 JVM 的参数设置，这样就会导致很大的问题。

比如，如果你的宿主机内存在 8G， 你的容器设置为 1G，那么 JVM 根据你的宿主机内存，给到你应用 2G左右的堆内存，此时 JVM 会按照 2G 进行 GC，此时会出现 OOM ，而导致容器被 kill 的情况。



这一...]]></description><category></category></item><item><title><![CDATA[k8s集群服务器宕机重启后，部分应用、监控不可用处理方法]]></title><link>https://blog.youkuaiyun.com/Jerry_Pan1990/article/details/101193173</link><guid>https://blog.youkuaiyun.com/Jerry_Pan1990/article/details/101193173</guid><author>Jerry_Pan1990</author><pubDate>Mon, 23 Sep 2019 09:17:03 +0800</pubDate><description><![CDATA[服务器宕机重启后，可能导致部分服务及监控不可用：

kubectl top nodes 可以查看

kubectl top pod -n XXX 查看具体应用时，会发下部分pod不在metrics-server统计范围下

另外还会出现部分内部应用相互不可调用的情况。



推测是k8s网络问题导致，可以通过重置集群的方法解决：



1 在重启的集群执行：

 kubeadm reset...]]></description><category></category></item><item><title><![CDATA[windows10-pro下使用Minikube一键安装k8s验证环境]]></title><link>https://blog.youkuaiyun.com/Jerry_Pan1990/article/details/100163300</link><guid>https://blog.youkuaiyun.com/Jerry_Pan1990/article/details/100163300</guid><author>Jerry_Pan1990</author><pubDate>Fri, 30 Aug 2019 17:42:03 +0800</pubDate><description><![CDATA[首先感谢大神把 Minikube 中国化，之前 google的版本亲测安装过，不太好使，这个安装步骤是基于大神们的成果写的。

minikube可以在本机windows上一键安装k8s集群环境，方便大家学习、测试k8s文件，安装教程：

Hyper-v安装教程
https://docs.microsoft.com/zh-cn/virtualization/hyper-v-on-window...]]></description><category></category></item><item><title><![CDATA[mysql 查询脚本导出]]></title><link>https://blog.youkuaiyun.com/Jerry_Pan1990/article/details/99717634</link><guid>https://blog.youkuaiyun.com/Jerry_Pan1990/article/details/99717634</guid><author>Jerry_Pan1990</author><pubDate>Mon, 19 Aug 2019 11:25:18 +0800</pubDate><description><![CDATA[一个同事让我帮写的SQL，不一定优质，但应该能用。



SELECT
 t1.TABLE_NAME,
 t1.TABLE_COMMENT,
 CONCAT(
  'select ',
  GROUP_CONCAT(
   CONCAT(
    t2.COLUMN_NAME,
    ...]]></description><category></category></item></channel></rss>