热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

老司机翻车记录两则—关于k8s和vue.js

这两个翻车记录,一个让我端午前干到凌晨一点半,一个让我昨天干到晚上十二点半。一,K8S证书过期本来,

这两个翻车记录,一个让我端午前干到凌晨一点半,一个让我昨天干到晚上十二点半。

一,K8S证书过期

本来,集群是作过主要组件50年过期的,也作了kubelet自动续期的。
但一年之后,kubectl的证书还是过期了。
那个周三的上午,有同事就作了kubectl续期,然后,以为一切搞定。
怎知下午有同事一定要更新k8s集群,无法更新,删除了POD无法自动重建。
于是,开始找各种原因,以为是SA,以为是KUBELET问题,看各种LOG,进入KUBE-SYSTEM的POD看挂载的证书过期。
最后,终于知道,MASTER的证书一年过期,要同时更新三个证书,要同时更新三个证书,要同时更新三个证书!!!
kubectl使用的admin.conf
kube-controller-manager使用的conf
kube-scheduler使用的conf
留下两个技巧:
1,查看证书过期脚本
https://zhuanlan.zhihu.com/p/133828552

CERT_DIR=${CERT_DIR:-/etc/kubernetes/pki}
for i in $(find $CERT_DIR -name '*.crt' -o -name '*.pem'); do
 echo $i
    openssl x509 -enddate -in $i -noout
done
for f in $(ls /etc/kubernetes/{admin,controller-manager,scheduler}.conf); do
 echo $f
    kubectl --kubeconfig $f config view --raw -o jsOnpath='{range .users[*]}{.user.client-certificate-data}{end}' | base64 -d | openssl x509 -enddate -noout
done

kubeadm提供的类似命令(不同版本的话,看help)
kubeadm alpha certs check-expiration
2, 更新证书的操作,使用kubeadm操作,最好一个一个操作,不要renew all,这种,不透明。操作命令类似如下(不同版本有不同):

kubeadm  alpha certs renew admin.conf
kubeadm  alpha certs renew scheduler.conf 
kubeadm  alpha certs renew controller-manager.conf

更新了这三个证书之后,必须要将api,controller-manager,scheduler这几个POD重启,或是删除自动重建,不然,这几个POD里还是挂载了老的过期证书文件,切记切记!

二,Vue.js线上环境不能登陆

这个问题,也是困扰了我两天,本来好好的要完结的项目,使用的vue-element-admin这样的前端管理框架,后端使用go + gin +gorm完成,前后端分离。
在npm run dev时,一切OK,各种爽。
但一旦使用npm run build:prod这样的命令之后,我X,登陆时老是通不过,我看后端登陆有请求,且返回给了前端jwt的token值的。但死活不请求下一个url:getinfo()。
又没招了,找天找地,webpack配置更新,不行,后端fmt.Println,输出信息帮助不大。vue.js的前端各端console.log,输出信息也不大,反正就是Login之后,毛都不作了。
以为是token不能保存本地,废了js-COOKIE,使用Localstorage,还是dev可以,build不行。废了Localstorage,使用SessionStrorage,同样的现象。
不顺啊不顺。
最后最后最后,,想到了mock(),结果神奇了,这个vue-element-admin版本,默认在线上环境启用了mock,而dev环境不使用mock。当然,人家也作为注释说明的。
搞定就好,搞定就好,搞定就好。

vue-admin/src/main.js

/**
 * If you don't want to use mock-server
 * you want to use MockJs for mock api
 * you can execute: mockXHR()
 *
 * Currently MockJs will be used in the production environment,
 * please remove it before going online! ! !
 */
import { mockXHR } from '../mock'
if (process.env.NODE_ENV === 'production') {
  mockXHR()
}

注释掉这段MOCK,一切正常,天下太平,安心过周末。


推荐阅读
  • CEPH LIO iSCSI Gateway及其使用参考文档
    本文介绍了CEPH LIO iSCSI Gateway以及使用该网关的参考文档,包括Ceph Block Device、CEPH ISCSI GATEWAY、USING AN ISCSI GATEWAY等。同时提供了多个参考链接,详细介绍了CEPH LIO iSCSI Gateway的配置和使用方法。 ... [详细]
  • 本文介绍了在开发Android新闻App时,搭建本地服务器的步骤。通过使用XAMPP软件,可以一键式搭建起开发环境,包括Apache、MySQL、PHP、PERL。在本地服务器上新建数据库和表,并设置相应的属性。最后,给出了创建new表的SQL语句。这个教程适合初学者参考。 ... [详细]
  • 解决VS写C#项目导入MySQL数据源报错“You have a usable connection already”问题的正确方法
    本文介绍了在VS写C#项目导入MySQL数据源时出现报错“You have a usable connection already”的问题,并给出了正确的解决方法。详细描述了问题的出现情况和报错信息,并提供了解决该问题的步骤和注意事项。 ... [详细]
  • 移动端常用单位——rem的使用方法和注意事项
    本文介绍了移动端常用的单位rem的使用方法和注意事项,包括px、%、em、vw、vh等其他常用单位的比较。同时还介绍了如何通过JS获取视口宽度并动态调整rem的值,以适应不同设备的屏幕大小。此外,还提到了rem目前在移动端的主流地位。 ... [详细]
  • 本文介绍了一个适用于PHP应用快速接入TRX和TRC20数字资产的开发包,该开发包支持使用自有Tron区块链节点的应用场景,也支持基于Tron官方公共API服务的轻量级部署场景。提供的功能包括生成地址、验证地址、查询余额、交易转账、查询最新区块和查询交易信息等。详细信息可参考tron-php的Github地址:https://github.com/Fenguoz/tron-php。 ... [详细]
  • 本文介绍了如何使用JSONObiect和Gson相关方法实现json数据与kotlin对象的相互转换。首先解释了JSON的概念和数据格式,然后详细介绍了相关API,包括JSONObject和Gson的使用方法。接着讲解了如何将json格式的字符串转换为kotlin对象或List,以及如何将kotlin对象转换为json字符串。最后提到了使用Map封装json对象的特殊情况。文章还对JSON和XML进行了比较,指出了JSON的优势和缺点。 ... [详细]
  • 安装mysqlclient失败解决办法
    本文介绍了在MAC系统中,使用django使用mysql数据库报错的解决办法。通过源码安装mysqlclient或将mysql_config添加到系统环境变量中,可以解决安装mysqlclient失败的问题。同时,还介绍了查看mysql安装路径和使配置文件生效的方法。 ... [详细]
  • 在Android开发中,使用Picasso库可以实现对网络图片的等比例缩放。本文介绍了使用Picasso库进行图片缩放的方法,并提供了具体的代码实现。通过获取图片的宽高,计算目标宽度和高度,并创建新图实现等比例缩放。 ... [详细]
  • 云原生边缘计算之KubeEdge简介及功能特点
    本文介绍了云原生边缘计算中的KubeEdge系统,该系统是一个开源系统,用于将容器化应用程序编排功能扩展到Edge的主机。它基于Kubernetes构建,并为网络应用程序提供基础架构支持。同时,KubeEdge具有离线模式、基于Kubernetes的节点、群集、应用程序和设备管理、资源优化等特点。此外,KubeEdge还支持跨平台工作,在私有、公共和混合云中都可以运行。同时,KubeEdge还提供数据管理和数据分析管道引擎的支持。最后,本文还介绍了KubeEdge系统生成证书的方法。 ... [详细]
  • HDU 2372 El Dorado(DP)的最长上升子序列长度求解方法
    本文介绍了解决HDU 2372 El Dorado问题的一种动态规划方法,通过循环k的方式求解最长上升子序列的长度。具体实现过程包括初始化dp数组、读取数列、计算最长上升子序列长度等步骤。 ... [详细]
  • 本文介绍了OC学习笔记中的@property和@synthesize,包括属性的定义和合成的使用方法。通过示例代码详细讲解了@property和@synthesize的作用和用法。 ... [详细]
  • 20211101CleverTap参与度和分析工具功能平台学习/实践
    1.应用场景主要用于学习CleverTap的使用,该平台主要用于客户保留与参与平台.为客户提供价值.这里接触到的原因,是目前公司用到该平台的服务~2.学习操作 ... [详细]
  • 使用在线工具jsonschema2pojo根据json生成java对象
    本文介绍了使用在线工具jsonschema2pojo根据json生成java对象的方法。通过该工具,用户只需将json字符串复制到输入框中,即可自动将其转换成java对象。该工具还能解析列表式的json数据,并将嵌套在内层的对象也解析出来。本文以请求github的api为例,展示了使用该工具的步骤和效果。 ... [详细]
  • 后台获取视图对应的字符串
    1.帮助类后台获取视图对应的字符串publicclassViewHelper{将View输出为字符串(注:不会执行对应的ac ... [详细]
  • 像跟踪分布式服务调用那样跟踪Go函数调用链 | Gopher Daily (2020.12.07) ʕ◔ϖ◔ʔ
    每日一谚:“Acacheisjustamemoryleakyouhaven’tmetyet.”—Mr.RogersGo技术专栏“改善Go语⾔编程质量的50个有效实践” ... [详细]
author-avatar
xjoliemonicane_934
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有