主页

用kubeadm安装kubernetes集群过程记录

Before you begin 本次使用kubeadm搭建kubernetes集群使用两台Linux主机。如果是单台主机想要学习搭建kubernetes集群,建议使用kind 使用kubeadm最好是有一个镜像仓库,kind有个好处是,可以把主机的docker镜像加载到kind k8s集群内使用 注意 本文的内容仅对v1.24.1版本有效,因为之前的版本可能不太符合,主要是这个版本之后kubernetes开始废弃了对docker的内置兼容(docker不符合CRI),所以对于v1.24版本以后的kubernetes,需要安装cri-docker https://docs.github.com/en/actions/publishing-packages/publis...

阅读更多

用kind安装kubernetes集群过程记录

创建HTTPS证书密钥 sudo kubectl create secret tls tls-secret --key cert/fy-huang.cn-new.key --cert cert/fy-huang.cn-new.crt 创建Ingress 利用已经创建好的密钥 kubectl apply -f https://raw.githubusercontent.com/kubernetes/ingress-nginx/main/deploy/static/provider/kind/deploy.yaml kubectl wait --namespace ingress-nginx \ --for=condition=ready pod \ --se...

阅读更多

后端开发技术栈总结

前言 最近在面试,才发现自己的基础和技术栈多么不足。萌生了总结一下自己的技术栈的想法。 目录 编程基础 语言 数据结构 算法 网络 操作系统 技术栈 存储 一、编程基础 语言 数据结构 算法 动态规划 动态规划写起来有两种,一个是自顶向下,也叫记忆化搜索,一般用递归实现的;一个是自底向上,递推实现。 递推实现也分两种,从高往低递推,比如背包DP,最长回文字符串DP;另外常见的都是从低往高递推。 网络 操作系统 进程 线程 CPU调度 内存管理 I/O...

阅读更多

记一次和gzip有关的java OKHTTP的坑

事情的起因是,有一个新项目,需要访问内网的服务A,服务A其实本身不提供服务的实现,只是做请求的转发,实际服务的实现是服务B。服务A接收到请求,转给服务B,得到服务B的响应之后输出。 我们之前也有用过服务A,是用在PHP项目上,现在的新项目是Java项目。 因为之前接过服务A,所以以为会很快接入,没想到掉进了个坑。 Java里面请求服务A用的是HTTP client是OKHttp3,请求得到服务A的响应没办法解json,输出之后发现是一堆的乱码,打印了响应的HTTP头信息发现Content-Length比预期小很多。 然后,用之前有问题的请求体curl手动调用服务A,发现响应是正常的。而且之前PHP项目也一直在线上跑着,没出现过类似的问题。 然后问负责服务A的同事,他说他之前遇到过...

阅读更多

记一次TLS证书问题

昨天在公司快下班的时候,突然收到线上的告警信息,线上其中一台机器请求渠道的服务失败,我们的后端代码是PHP,上到机器上面查看的时候发现代码记录的失败日志是: request failed,curl occur an error: SSL certificate problem: unable to get local issuer certificate Original verbose string: * Trying *.*.*.*... * TCP_NODELAY set * Connected to *.*.* (*.*.*.*) port 443 (#0) * ALPN, offering http/1.1 * successfully set certificate ...

阅读更多

新的开始-浪漫的开始-梦幻的开始-幸福的开始

我喜欢打游戏,看电影,看漫画,看动画。她喜欢 宅,逛街,散步,聊天。希望我们能磨合好,长长久久! 2019-10-27 这一天 这一天是充满惊喜的一天。 今天我和她告白了!她说她喜欢我!!我们在一起了!!! 下午4点多,和大佬约定去剪头发,剪完大概40分,想着一会如果还要下来吃饭怪麻烦的,就带了份快餐回去吃。 然后5点多,她和她姐姐约好到我住的附近吃饭,聊天,姐姐问我有什么推荐,说了几家挺不错的。然后就一个人自己在想:姐姐一会儿会不会邀请我一起去吃啊?但是她是约的她姐姐,可能是想聊悄悄话,不要去打扰比较好;转头想起上周四我向她推荐我超喜欢一款主机游戏,等会给她发信息等她们吃完,我把游戏机和游戏带过去给她俩。ok,这便决定了。 之后一会儿,她姐打电话过来,问要不要一起吃,我...

阅读更多

leetcode Combinations 刷题总结

前言 这篇文章呢主要是记录我刷leetcode时遇到的有趣的题。 这里说的有趣呢包含两方面,可能是题目很有趣,也有可能是它解法很有趣。 leetcode题目 77. Combinations leetcode链接 这题是要根据n,k输出1…n中的k个数的所有组合。 c++中两个很好用的函数prev_permutation和next_permutation, prev_permutation是按照字典顺序改变当前数组成小一点的数组,next_permutation是刚好大的数组。 prev_permutation用来解这题很方便。 class Solution { public: vector<vector<int>> comb...

阅读更多

心情

2019-08-04 我所有的自负皆来自我的自卑,所有的英雄气概都来自于我的软弱。嘴里振振有词是因为心里满是疑惑,深情是因为痛恨自己无情。 – 马良《坦白书》 不久前,在同一个城市工作的偶尔一起出来吃饭聊天的高中同学A联系上,说久违地和几个高中同学一起聚一下。一起约吃了个饭,吃完聊了好一会儿之后,时间也不早了准备散了。因为账单就放在我手边,所以起身之后顺手就去买单了。完了之后呢,同学A过来说把账单给他看下多少钱。当时我刚换了家公司,工资提升了一些,想着挺难的大家一起聚聚,我请客就好了,所以就把账单塞口袋了,说“不用看了,这顿我请大家了。”但大家都说,不好让我请。这时继续读研究生的同学B说,“大家一起聚会,不要争着请客,不然以后大家都不愿意一起聚了”。我深以为然,最...

阅读更多

MySQL事务隔离级别总结

事务隔离是数据库处理的基础。隔离是ACID中的i(isolation)。当有多个事务在更改数据同时查询数据时,事务隔离级别调整的是数据库性能、可靠性、一致性和结果的可重复性之间的平衡。 MySQL的InnoDB存储引擎提供4种事务隔离级别:READ_UNCOMMITTED, READ_COMMITTED, REPEATABLE_READ, and SERIALIZABLE。InnoDB的默认事务隔离级别时REPEATABLE_READ。 InnoDB中,对这4中事务隔离级别使用不同的锁策略。如果对于关键数据,ACID的一致性时十分重要的,你可以用默认的REPEATABLE_READ级别来保证数据的强一致性。但是,如果对比起大幅减少锁带来的性能提升,数据的强一致性不是那么重要,例如批...

阅读更多

Raft协议总结

前言 Raft是一种分布式共识算法,类似的还有Paxos。 这里有一个动画http://thesecretlivesofdata.com/raft/,对于理解Raft协议做得很好。 Raft广泛应用于分布式存储中,例如分布式存储系统tikv, etcd, consul。 在Raft集群中,每一个服务器可能是三种身份中的一个:leader, follower, candidate。 leader与客户端交互,通过日志复制的方式将客户端的信息同步信息到他的follower服务器里。follower服务器则负责同步来自leader服务器的日志来保持与leader服务器信息同步。candidate是在follower状态下失去了leader服务器的连接之后,状态变为candidate,发起...

阅读更多