Kubernetes
记录踩坑日志,慢慢成长
山间漫步人生路
一直走在踩坑,爬坑的路上
展开
-
【calico not ready】 BGP not established with 192.168.xxx.xxx 记录calico 启动问题
【calico not ready】BGP not established with192.168.xxx.Xxx记录calico启动问题原创 2023-05-10 17:17:07 · 333 阅读 · 2 评论 -
rabbitmq安装
rabbitmq初始用户名和密码为guest。docker安装rabbitmq。然后通过ip:15672访问。k8s单机部署原创 2022-08-05 17:50:36 · 476 阅读 · 2 评论 -
calico报错
calico报错原创 2022-07-08 16:58:27 · 2849 阅读 · 0 评论 -
如何利用terminationGracePeriodSeconds优雅地关闭你的服务
在 Kubernetes 中,Pod 停止时 kubelet 会先给容器中的主进程发 SIGTERM 信号来通知进程进行 shutdown 以实现优雅停止,如果超时进程还未完全停止则会使用 SIGKILL 来强行终止。容器终止流程:1、Pod 被删除,状态置为 Terminating。2、kube-proxy 更新转发规则,将 Pod 从 service 的 endpoint 列表中摘除掉,新的流量不再转发到该 Pod。3、如果 Pod 配置了 preStop Hook ,将会执行。4、kubel原创 2022-02-09 10:52:24 · 9563 阅读 · 1 评论 -
helm的安装与使用
启用harbor的Chart仓库服务# ./install.sh --with-chartmuseum启用后,默认创建的项目就带有helm charts功能了。//helm 的安装wget https://get.helm.sh/helm-v3.7.1-linux-amd64.tar.gztar -zxvf helm-v3.7.1-linux-amd64.tar.gzmv linux-amd64/helm /usr/local/bin/helmhelm version//helm原创 2021-12-06 13:46:58 · 1502 阅读 · 0 评论 -
java 连接k8s-client的五种方式
pom.xml添加<dependency> <groupId>io.kubernetes</groupId> <artifactId>client-java</artifactId> <version>10.0.1</version> <scope>compile</scope> </dependency>/*** 方式一:默认方式,从系统配置 $HOM原创 2021-11-12 15:03:42 · 3806 阅读 · 2 评论 -
skywalking部署之后日志不显示
skywalking部署请参考官网使用helmexport REPO=chartgit clone https://github.com/apache/skywalking-kubernetescd skywalking-kuberneteshelm repo add elastic https://helm.elastic.cohelm dep up ${REPO}/skywalkingcd /root/skywalking-kubernetes/chart/skywalkingvim原创 2021-11-02 16:05:41 · 6355 阅读 · 1 评论 -
安装Metrics server报错的解决办法
metrcis-server 安装异常执行 kubectl top nodes 指令失败Error from server (ServiceUnavailable): the server is currently unable to handle the request (get nodes.metrics.k8s.io)确认 metrics-server 是否正常运行确认 ApiService 是否正常排查步骤1,根据ApiService的日志,查443端口排查步骤2,metric原创 2021-08-02 15:01:41 · 1468 阅读 · 5 评论 -
ETCD的备份以及数据恢复
发现很多pod的状态为evicted。eviction,即驱赶的意思,意思是当节点出现异常时,kubernetes将有相应的机制驱赶该节点上的Pod。多见于资源不足时导致的驱赶。排查资源和异常原因,防止新的驱赶产生。使用如下命令删除旧驱赶的遗留kubectl get pods -n kube-public | grep Evicted | awk '{print $1}' | xargs kubectl delete pod -n kube-public或者cat /data/alarm/d原创 2021-06-30 13:55:25 · 397 阅读 · 0 评论 -
更新k8s镜像版本的三种方式
修改deployment的镜像1、修改Yaml文件中的image2、使用patch命令 kubectl docskubectl patch deployment image-deployment --patch '{"spec": {"template": {"spec": {"containers": [{"name": "nginx","image":"registry.cn-beijing.aliyuncs.com/mrvolleyball/nginx:v1"}]}}}}'3、使用set原创 2021-06-07 14:05:46 · 2510 阅读 · 0 评论 -
记录rabbitmq单机部署rabbitmq并开启mqtt协议
创建一个configMapapiVersion: v1data:#在此添加需要开启的协议逗号隔开 enabled_plugins: >- [rabbitmq_management,rabbitmq_peer_discovery_k8s,rabbitmq_mqtt,rabbitmq_web_mqtt].kind: ConfigMap name: rabbit-plugins namespace: kube-public也可以通过命令行创建kubectl create原创 2021-05-14 15:29:47 · 368 阅读 · 13 评论 -
记一次项目部署到k8s上使用configMap替换项目中文件的问题
为了使部署简便,镜像多次使用,而不是每修改一次配置或者参数就要重新打一次的问题(项目较老都是替换.xml)问题:替换项目中文件的web.xml或者jdbc.properties刚开始想着直接war包打镜像,然后直接替换就好了哪曾想替换之后会把所有的文件覆盖,只留下configMap替换的文件然后想着直接把war包解压后的文件放到镜像中,这样替换就不会覆盖了之前的DockerfileFROM tomcat8-jdk8:latestRUN rm -rf /usr/local/tomcat/web原创 2021-05-14 15:11:08 · 2067 阅读 · 4 评论 -
docker k8s中通过环境变量设置VUE中的参数
根据环境参数编译不同的文件,无法做到多个环境使用同一版本的镜像,使用环境变量可以在创建镜像的时候传递基础参数减少编译确保测试的有效性.方案通过将环境变量传递到DOM,在VUE项目中读取DOM来进行使用环境变量.例如关于websocket的url路径问题读取环境变量1 直接在代码中定义const wsUrl = document.querySelector('body').getAttribute('wsUrl')2 在config/index.js中定义wsUrl: document.q原创 2021-04-20 16:42:17 · 2621 阅读 · 0 评论 -
k8s记一次kubelet启动后master无法获取node信息
k8s的node启动kubelet后再master端获取不到Error updating node status, will retry: error getting node "node2": an error on the server ("") has prevented the request from succeeding (get nodes node2)需要删除该目录下证书重启kubelet重新生成新的node证书如果是修改了node主机的IP,需要修改kubelet 配置信息,重启k原创 2021-03-08 13:33:31 · 8156 阅读 · 1 评论 -
k8s的容器pod的状态为evicted如何处理?
发现很多pod的状态为evicted。eviction,即驱赶的意思,意思是当节点出现异常时,kubernetes将有相应的机制驱赶该节点上的Pod。多见于资源不足时导致的驱赶。排查资源和异常原因,防止新的驱赶产生。使用如下命令删除旧驱赶的遗留kubectl get pods -n kube-public | grep Evicted | awk ‘{print $1}’ | xargs kubectl delete pod -n kube-publiccat /data/alarm/del_e原创 2021-03-06 14:24:57 · 4019 阅读 · 0 评论 -
k8s部署rabbitmq集群并启用mqtt,并设置admin账户
项目用到rabbitmq以及mqtt,所以整理记录一下rabbitmq-configmap.yamlapiVersion: v1kind: ConfigMapmetadata: name: rmq-cluster-config namespace: default labels: addonmanager.kubernetes.io/mode: Reconciledata: enabled_plugins: | #有需要启用的插件在这里设置 [r原创 2021-03-06 14:14:00 · 1606 阅读 · 0 评论 -
k8s部署zookeeper集群
k8s以StatefulSet方式部署zookeeper集群:为了项目访问方便,设置2181为nodeport形式项目访问的时候就ip:32181zookeeper-sts.yamlapiVersion: v1kind: Servicemetadata: name: zk-hs labels: app: zkspec: selector: app: zk ports: - port: 2888 name: server - port: 3888原创 2021-03-06 13:54:33 · 716 阅读 · 0 评论 -
搭建NFS Server
#配置要求两台 linux 服务器,centos 7一台用作 nfs server另一台用作 nfs 客户端#配置NFS服务器执行以下命令安装 nfs 服务器所需的软件包yum install -y rpcbind nfs-utils执行命令 vim /etc/exports,创建 exports 文件,文件内容如下:/root/nfs_root/ *(insecure,rw,sync,no_root_squash)执行以下命令,启动 nfs 服务mkdir /root/nfs_ro原创 2021-03-06 10:36:19 · 2839 阅读 · 2 评论 -
二进制 Kubernetes新增node节点以及问题记录
关闭防火墙systemctl stop firewalldsystemctl disable firewalld关闭selinuxsed -i 's/enforcing/disabled/' /etc/selinux/config # 永久setenforce 0 # 临时关闭swapswapoff -a # 临时sed -ri 's/.*swap.*/#&/' /etc/fstab # 永久根据规划设置主机名hostnamectl set-hostname &原创 2021-03-06 09:37:26 · 262 阅读 · 0 评论