前提准备,(1)已经安装 Helm ,参考 Helm 安装 ,(2)集群有默认的动态存储可用,参数 使用StorageClass提供PV动态存储1. 使用 Helm 安装 IngressIngress 由 Ingress 和 Ingress Controller 两部分组成。在 Kubernetes
主要记录最近遇到的一些开发问题,解决方法。1. Kubernetes 集群添加新的 Node 节点在执行 kubeadm init 时,Console 会打印添加 Node 的命令。Token 默认的有效期为 24h 。当超过有效期时,需要重新创建 Token ,执行命令:1 2 kubeadm t
1. docker pull 拉取镜像使用 docker pull {IMAGE_NAME} 拉取镜像时,有两种情况:IMAGE_NAME 前缀指向 registryDocker 会将 IMAGE_NAME 识别为指定仓库提供的镜像。例如,myregistry.io/space1/image1:la
主要记录最近遇到的一些开发问题,解决方法。1. Ingress 开启 HTTPS准备好证书,domain.com.crt、domain.com.key创建 Secret1 kubectl create secret tls {SECRET_NAME} --key domain.com.key --c
1. 搭建 Harbor 的要求Harbor 硬件要求:CPU,最少 2 核,4 核更好Mem,最少 4 GB,8 GB 更好Disk,最少 40 GB,160 GB 更好Docker 版本要求:17.06.0 以上在 Kubernetes 上搭建 Harbor ,可以参考文档,使用 Helm 搭建
1. CNI 问题错误日志1 2 journalctl -u kubelet ...Unable to update cni config: No networks found in /etc/cni/net.d 由于没有安装 CNI ,需要移除 /var/lib/kubelet/kubeadm-f
通过 Operator 的方案,可以对 Kubernetes 的功能进行友好地扩展。Operatpr = CRD + Controller。首先通过 yaml 定义,生成 CRD ,然后 Controller 不断地监听 etcd 中的数据,执行相应动作。开发 Operator 时,有很多繁琐且重复
我使用的是 Kubernetes 1.15.3 ,不同版本的处理方法可能会有不同。1. 关于证书根证书是自签的根证书是由自己签发的。在浏览器中,内置了常见的证书服务商的 CA 证书。因此,浏览器才会信任这些证书服务商签发的下一级证书。我们也可以生成根证书,但是需要将根证书添加到系统信任证书列表中。这
Deployment 通过创建 ReplicaSet 控制 Pod 的数量、状态。本篇主要介绍一些 Deployment 常用的操作。1. Deployment yaml 格式带上 --dry-run 参数表示并不执行命令,仅生成 yaml 输出:1 kubectl create deploymen
1. 自动签发 Ingress 证书安装 cert-manager 1 2 3 4 5 6 7 8 9 10 kubectl apply -f https://raw.githubusercontent.com/jetstack/cert-manager/release-0.10/d
主要记录最近遇到的一些开发问题,解决方法。1. Kubernetes 服务仅在负载节点可用正常情况下 NodePort 类型的 Service ,任意 Node 节点 IP + 端口,都可以访问。但是,也有可能仅负载的 Node 节点 IP + 端口可以访问。首先,可以尝试配置转发相关参数:1 2
1. 为什么要拨测对于系统中的一些关键服务,我们通常会配置监控服务。当故障发生时,能够尽快被检测到,发送通知给关注人。当故障发生后,能够有效地追溯故障过程。拨测是监控系统中的一个重要环节,能够检测服务的网络质量,并提供实时告警。在公有云上,云厂商通过广泛分布的拨测节点,提供拨测服务。那么在 Jenk
1. Jenkins 的工作模式Jenkins 是一个单 Master,多 Slave 架构。Master 负责分配任务、管理服务。 Slave 负责执行具体任务。即使部署了多个 Master,这些 Master 之间依然相互独立,无法协同调度。在高可用的 Jenkins 方案中,需要借助外部的任务
1. 测试分层测试的目的是为了验证预期的功能,发现潜在的缺陷。测试增强了交付合格产品的信心,也给敏捷迭代带来了可能。可以说,测试决定了产品的开发进度。网络模型有七层的 OSI 、四层的 TCP,而开发模式有 MTV、MVC、MVP、MVVM 等。高内聚、低耦合,划分职责、分模块、分层。然后结构化、标
使用 KubeSpray 安装 Kubernetes 时,报错1 2 3 4 5 6 fatal: [node0]: FAILED! => { "assertion": "ip in ansible_all_ipv4_addresses", "changed": false,
主要记录最近遇到的一些开发问题,解决方法。1. 重启 Kubernetes 中的 Job 任务1 kubectl -n {NAMESPACE} get job {JOB_NAME} -o json | jq 'del(.spec.selector)' | jq 'del(.spec.template
首先,编译器需要将 .java 文本文件编译为 .class 字节码,然后 JVM 执行 .class 字节码文件。流程并不复杂,本文主要记录一些在编译、运行时的相关过程。1. 单个文件源代码新建文本文件 Hello.java1 2 3 4 5 public class Hello { pu
主要记录最近遇到的一些开发问题,解决方法。1. Azure 镜像代理在国内的服务器上,拉取某些镜像速度较慢,或根本就无法拉取。Azure 提供了容器仓库的镜像代理服务。无法拉取的镜像源替换之后的镜像源k8s.gcr.iogcr.azk8s.cn/google_containersdocker.iod
1. Velero 简介Velero 是 heptio 团队(被 VMWare 收购)开源的 Kubernetes 集群备份、迁移工具。Velero 使用对象存储保存集群资源。默认支持的对象存储有 AWS、Azure、GCP ,兼容 S3 协议,也可以通过插件来扩展到其他平台,比如 Aliyun O