山巅
软件,编程 篮球 游泳 听音乐
展开
-
kubesphere 3 devops 发布 java项目 至k8s
jenkins kubesphere 3 devops 发布 java项目 至k8s一、拉取代码二、初始化变量三、编译打包公共代码及各微服务代码四、发布镜像到k8s一、拉取代码需要用到gitlab-id凭证,如下图 stage('clone code') { agent none steps { git(url: 'http://10.10.10.xxx:8888/xxx-xxx/xx-xxxx.git', branch: 'develop', creden原创 2022-02-15 14:06:15 · 1010 阅读 · 0 评论 -
k8s 搭建 datalink
k8s 搭建 datalink1. 初始化Mysql2. 安装Zookeeper3. 安装manager3.1 制作manager 镜像3.2 配置和安装manager实例3.3 查看日志3.4 外部访问service3.5 验证4.安装worker4.1 配置Worker4.2 制作worker镜像4.3 安装worker4.5 固定worker ip4.6 查看日志4.7 验证1. 初始化Mysqlwget https://github.com/ucarGroup/DataLink/blob/mas原创 2022-05-07 11:04:28 · 682 阅读 · 0 评论 -
k8s 安装 rocketmq 集群
代码地址:https://github.com/apache/rocketmq-operator.git。原创 2022-11-09 16:06:20 · 787 阅读 · 0 评论 -
基础镜像不支持中文导致Malformed input or input contains unmappable characters
基础镜像不支持中文导致Malformed input or input contains unmappable characters原创 2022-08-31 15:29:10 · 6918 阅读 · 0 评论 -
kubesphere jenkins 安装插件问题
部署k8s spring boot 项目 时用到了 readMavenPom 功能,所以需要安装pipeline-utility-steps插件。从报错的日志看Script Security Plugin 、Structs Plugin、Pipeline: Groovy 需要升级。从本地升级完这些插件后,再本地安装pipeline-utility-steps.hpi插件就可以了。Pipeline: Groovy 对应的workflow-cps。升级方法也是先从插件库下载对应版本,然后在本地升级。原创 2022-11-29 16:49:18 · 627 阅读 · 0 评论 -
自建服务器系列- HTTPS配置
https 启用原创 2023-03-07 10:24:30 · 189 阅读 · 0 评论 -
k8s证书未过期时续约
上面这个问题处理后,接下来重启了devops的里两个服务就解决了以下问题。把第一台的配置文件复制到第二,第三台:这一步不确定是否有用。第一台可以了,但是第二,第三台还是不行。原创 2023-02-27 10:24:24 · 60 阅读 · 0 评论 -
k8s 强制删除 namespace
k8s 强制删除 namespace原创 2023-02-27 10:15:30 · 366 阅读 · 0 评论 -
k8s 文件 目录挂载
注意:当有多个pod 副本时,日志文件的命名要用到pod相关的变量,如 hostname,这样共享nfs文件夹时就不会共同写入同一文件了。path: 配置宿主机目录。以下是挂载日志文件的例子。原创 2023-01-11 10:15:00 · 2974 阅读 · 0 评论 -
0/5 nodes are available: 5 Insufficient cpu.
是因为集群中的CPU资源不够部署当前pod(nodejs 8 cpus)导致的。注意这边计算的公式是总CPU - Request CPU查看 每个node 的CPU 和Request CPU 可以用以下命令总CPU已申请CPU本问题中为什么会有78%的CPU已被申请,主要是因为以下几个pod点用的而这几个pod 错误的状态(如下图),导致没法回收CPU ,所以导致无法分配。原创 2022-12-21 11:25:30 · 5967 阅读 · 0 评论 -
Kubernetes 认证证书过期处理
kubesphere 安装的jenkins,因为在页面上操作没有响应,我想重启下,结果发现删除原来的容器后,没法自动重新创建容器。如下图:里面的pod删除了,不会自动生成。原创 2022-12-15 23:13:14 · 593 阅读 · 0 评论 -
harbor 安装
k8s 安装 harbor原创 2022-11-23 21:02:34 · 1151 阅读 · 0 评论 -
flannel网络不通问题处理
问题现象:ping 同一node的pod ip 可以通ping 不同node的pod ip不同Tcpdump命令的使用https://blog.csdn.net/fajing_feiyue/article/details/123313570flannel原理:https://blog.csdn.net/qq_34556414/article/details/113852030查找思路:https://junjie2018.github.io/notes/%E5%AE%B9%E5%99%A8%E6%8A原创 2022-11-18 08:11:04 · 203 阅读 · 0 评论 -
k8s部署zookeeper集群
k8s部署zookeeper集群。原创 2022-11-02 15:33:07 · 324 阅读 · 0 评论 -
k8s 增加 node 节点
k8s 增加 node节点原创 2022-11-01 09:18:26 · 999 阅读 · 1 评论 -
k8s 内存 limits理解
JVM 是不知道自己在Docker容器中运行的,jvm识别的是物理主机的内存,而不是k8s给pod分配的内存或docker容器的内存。因此在没有给jvm指定内存大小的情况下,机器物理内存很大时,jvm默认占用的内存Xms超出了k8s分配给pod的内存,导致pod内存溢出,从而k8s不断重启pod。k8s pod频繁自动重启,jvm参数设置的时候,要综合考虑pod资源配额limit的值和告警触发值,否则容器很容易因为不合理的jvm参数设置达到pod资源配额的上限而被kill掉,导致频繁的触发告警。原创 2022-10-18 14:42:28 · 305 阅读 · 0 评论 -
k8s cpu limits 理解(实验)
代码所在的两个pod的cpu都达到了3700以上,但不会超过4000m。CPU 打满的情况下这个页面也比较慢出来。原创 2022-10-17 08:58:09 · 338 阅读 · 0 评论 -
生产环境kubeadm部署k8s(1.23)高可用集群
kubeadm部署k8s高可用集群1、设备清单2、各节点下载docker源3、各节点安装docker服务并加入开机启动4、各节点配置docker加速器并修改成k8s驱动5、各节点重启docker服务6、各节点配置hosts文件7、更改各节点主机名8、关闭各个节点防火墙9、关闭各节点SElinux10、关闭各节点swap分区11、各节点重启服务器12、各节点同步的时间13、各节点内核调整,将桥接的IPv4流量传递到iptables的链14、配置各节点k8s的yum源15、各节点安装ipset服务16、各节点开原创 2022-03-02 10:33:01 · 2985 阅读 · 7 评论 -
k8s 安装与配置
k8s 安装与配置一、系统初始化,执行的命令如下:二、安装docker三、配置镜像源四、添加阿里云YUM软件源五、安装kubelet-1.23.0 kubeadm-1.23.0 kubectl-1.23.0六、部署master七、使用kubectl工具:八、加入k8s node节点九、部署CNI网络插件十、测试K8s 集群常用的命令:1、kubectl delete -f flannel.yaml2、kubectl get pods -n kube-system3、kubectl logs kube原创 2021-12-15 20:52:22 · 2899 阅读 · 0 评论 -
spring cloud k8s kubesphere 灰度发布改造(包含gateway)
spring cloud k8s kubesphere 灰度发布(包含gateway)原创 2022-08-25 14:25:44 · 724 阅读 · 0 评论 -
k8s 上安装jenkins、harbor
k8s 上安装jenkins转载 2021-12-17 16:55:26 · 283 阅读 · 0 评论 -
15 | 深入解析Pod对象(二):使用进阶 笔记
它的作用,是帮你把 Pod 想要访问的加密数据,存放到 Etcd 中。然后,你就可以通过在 Pod 的容器里挂载 Volume 的方式,访问到这些 Secret 里保存的信息了。在这个 Pod 中,我定义了一个简单的容器。它声明挂载的 Volume,并不是常见的 emptyDir 或者 hostPath 类型,而是 projected 类型。而这个 Volume 的数据来源(sources),则是名为 user 和 pass 的 Secret 对象,分别对应的是数据库的用户名和密码。这里用到的数据库的用户原创 2022-06-01 15:12:29 · 625 阅读 · 0 评论 -
k8s学习 k8s使用nodeport方式配置service对外暴露服务
k8s学习 k8s使用nodeport方式配置service对外暴露服务1、创建yaml service.yaml 把集群中的mysql 服务对外暴露2、用node ip 访问1、创建yaml service.yaml 把集群中的mysql 服务对外暴露---apiVersion: v1kind: Servicemetadata: name: mysql-service labels: name: mysql-servicespec: type: NodePort原创 2021-12-06 15:35:44 · 5108 阅读 · 0 评论 -
16 | 编排其实很简单:谈谈“控制器”模型 笔记
接下来,以 Deployment 为例,我和你简单描述一下它对控制器模型的实现:1.Deployment 控制器从 Etcd 中获取到所有携带了“app: nginx”标签的 Pod,然后统计它们的数量,这就是实际状态;2.Deployment 对象的 Replicas 字段的值就是期望状态;3.Deployment 控制器将两个状态做比较,然后根据比较结果,确定是创建 Pod,还是删除已有的 Pod(具体如何操作 Pod 对象,我会在下一篇文章详细介绍)。参考:https://time.geekba原创 2022-06-01 15:30:55 · 232 阅读 · 0 评论 -
17 | 经典PaaS的记忆:作业副本与水平扩展 笔记
当修改了yaml 文件时,就需要滚动更新来升级现有的容器,而这个能力的实现,依赖一个重要的概念:ReplicaSet如下例子:从这个 YAML 文件中,我们可以看到,一个 ReplicaSet 对象,其实就是由副本数目的定义和一个 Pod 模板组成的。不难发现,它的定义其实是 Deployment 的一个子集。更重要的是,Deployment 控制器实际操纵的,正是这样的 ReplicaSet 对象,而不是 Pod 对象。对于一个 Deployment 所管理的 Pod,它的 ownerReferenc原创 2022-06-01 16:25:24 · 236 阅读 · 0 评论 -
28 | PV、PVC、StorageClass,这些到底在说啥?笔记
pv pvc 例子2.绑定条件而用户创建的 PVC 要真正被容器使用起来,就必须先和某个符合条件的 PV 进行绑定。这里要检查的条件,包括两部分:第一个条件,当然是 PV 和 PVC 的 spec 字段。比如,PV 的存储(storage)大小,就必须满足 PVC 的要求。而第二个条件,则是 PV 和 PVC 的 storageClassName 字段必须一样。这个机制我会在本篇文章的最后一部分专门介绍。撮合 PV 和 PVC 的“红娘”PersistentVolumeController 会不断地查看原创 2022-06-02 15:44:13 · 417 阅读 · 0 评论 -
21 | 容器化守护进程的意义:DaemonSet 笔记
1、DaemonSet Controller,首先从 Etcd 里获取所有的 Node 列表,然后遍历所有的 Node。这时,它就可以很容易地去检查,当前这个 Node 上是不是有一个携带了 name=fluentd-elasticsearch 标签的 Pod 在运行。2、如何在指定的 Node 上创建新 Pod 呢?我们的 DaemonSet Controller 会在创建 Pod 的时候,自动在这个 Pod 的 API 对象里,加上这样一个 nodeAffinity 定义。其中,需要绑定的节点名字,正原创 2022-06-05 12:35:40 · 289 阅读 · 0 评论 -
26 | 基于角色的权限控制:RBAC 笔记
在 Kubernetes 项目中,负责完成授权(Authorization)工作的机制,就是 RBAC:基于角色的访问控制(Role-Based Access Control)Role 例子RoleBinding 例子2. ClusterRole 和 ClusterRoleBinding需要再次提醒的是,Role 和 RoleBinding 对象都是 Namespaced 对象(Namespaced Object),它们对权限的限制规则仅在它们自己的 Namespace 内有效,roleRef 也只能原创 2022-06-06 15:07:05 · 262 阅读 · 0 评论 -
k8s 集群容器中集成arthas、netstat即时诊断分析工具
Dockerfile文件如下增加了问题 Unable to get pid of LinuxThreads manager thread 处理1 环境:k8s docker jib-maven-plugin工具2 问题日志3 处理方法由原来的openjdk:8-jdk-alpine镜像改成 centos:centos7.9.2009在openjdk:8-jdk-alpine镜像下执行RUN apk add apt-get 会报如下错误:ERROR: unsatisfiable constra原创 2022-06-08 11:38:08 · 1614 阅读 · 0 评论 -
kubesphere 整合harbor
k8s kubesphere harbor原创 2022-08-24 11:26:27 · 997 阅读 · 0 评论 -
k8s kubernetes-dashboard 安装配置
k8s kubernetes-dashboard 安装配置一、安装kubernetes-dashboard (docker 20.10.12, k8s 1.23.0)二、配置访问方式三、获取token一、安装kubernetes-dashboard (docker 20.10.12, k8s 1.23.0)官网地址:dashboardyaml文件:# Copyright 2017 The Kubernetes Authors.## Licensed under the Apache Licens原创 2021-12-16 13:47:44 · 1025 阅读 · 0 评论 -
KubeSphere 安装配置
KubeSphere 安装配置一、Kubernetes配置默认存储类二、安装三、K8s 1.20x版本nfs动态存储报错解决一、Kubernetes配置默认存储类Kubernetes配置默认存储类二、安装运行以下命令以在现有 Kubernetes 集群上安装 KubeSpherekubectl apply -f https://github.com/kubesphere/ks-installer/releases/download/v3.2.0/kubesphere-installer.yaml原创 2021-12-17 14:08:52 · 1161 阅读 · 0 评论 -
部署java jar 至k8s
部署java jar 至k8s一、打包镜像1、Dockerfile文件2、脚本文件3、编译打包镜像4、上传镜像5、问题列表5.1 standard_init_linux.go:228: exec user process caused: no such file or directory5.2 /dl-manager/bin/startup.sh: line 1: file: not found5.3 docker 中没有安装crontabs5.4 docker 容器启动失败后,如果查看日志?二、制作资原创 2022-03-17 23:44:39 · 3925 阅读 · 0 评论 -
Docker/K8s 部署 sentinel-dashboard
Docker/K8s 部署 sentinel-dashboard一、从 sentinel官网下载最新的sentinel-dashboard.jar包二、推送镜像到私有 Harbor三、发布到k8s一、从 sentinel官网下载最新的sentinel-dashboard.jar包1、下载地址2、创建sentinel-dashboard目录,把sentinel-dashboard.jar移到该目录3、新建DockerfileFROM adoptopenjdk/openjdk11MAINTAINER原创 2022-01-12 17:00:25 · 1010 阅读 · 0 评论 -
上私有云k8s 问题记录
K8sMac上使用Docker Desktop启动Kubernetes,踩坑后才搞定https://blog.csdn.net/chen801090/article/details/107108301/拉取github内容时显示无法建立SSL连接https://zhuanlan.zhihu.com/p/144312234mac 安装docker desktop. k8shttps://github.com/AliyunContainerService/k8s-for-docker-desktop原创 2022-02-07 17:19:55 · 2754 阅读 · 0 评论