云原生
文章平均质量分 79
洒满阳光的午后
学习不追求快,慢才是快。
展开
-
给Kubernetes新手的Helm Chart教程
一般的表述为“Helm 是Kubernetes 的包管理器”,但其作用超不止一个简单的包管理器。Helm 是一个由 DeisLabs 创建并捐赠给 CNCF 的开源项目,目前由 CNCF 维护。Helm 最初的目标是为了为用户提供一种更好的方式来管理在 Kubernetes 项目中创建的所有 YAML 文件。为了解决这个问题,Helm 引入了概念,Chart 是一个包含多个 Kubernetes 清单文件的集合,每个 Chart 还可以包含子 Chart 和依赖 Chart。原创 2024-04-12 09:46:16 · 983 阅读 · 0 评论 -
使用containerd容器运行时的Kubernetes集群如何配置访问http私有仓库(insecure-registries)?
在使用docker容器运行时,配置访问http较为简单。而当Kubernetes使用containerd时,其配置文件就相对复杂了。总的来说,有两种方式可以实现http仓库的访问。原创 2024-04-10 17:35:10 · 2055 阅读 · 0 评论 -
为什么K8s需要服务网格Istio?
Istio是一种服务网格技术,管理基于容器或虚拟机工作负载之间的服务交互,它允许开发人员无论使用何种供应商或平台,都能安全地连接、运行、控制和监控分布式微服务架构。Istio是开源且独立的,因此它可以在任何平台上使用,但是当与Kubernetes结合时,会发生最奇妙的化学反应。将两者结合使用,可以在网络和应用层面确保服务间和Pod间的通信安全。原创 2024-04-09 15:49:58 · 1283 阅读 · 0 评论 -
如何为Kubernetes构建最优的容器镜像(三):使用容器实现进程管理
使用精简且可共享的基础镜像来构建最小化的镜像,已缩短启动时间。使用多阶段构建来分离容器的构建和运行时环境。合并Dockerfile指令以创建清晰的镜像层,避免镜像缓存造成的错误。通过隔离离散功能来实现容器化,以便实现灵活的扩展和管理。设计具有单一、明确职责的Pod。捆绑辅助容器以增强主容器的功能或使其适应部署环境。构建能够响应运行时配置的应用程序和容器,以便在部署时提供更大的灵活性。将应用程序作为容器中的主进程运行,以便Kubernetes能够管理容器的生命周期。原创 2024-04-08 17:21:34 · 1138 阅读 · 0 评论 -
如何为Kubernetes构建最优的容器镜像(二):容器和Pod级别功能范围的界定、运行时配置的设计
由于Kubernetes操作的是更高层次的对象,如Pod,而不是直接管理容器,因此有一些机制可用于在运行时定义和注入到容器环境中的配置。正如您可能已经注意到的,这些模式中的每一个都支持构建标准、通用的主容器镜像的策略,这些镜像随后可以在各种上下文和配置中部署。Pod由一个或多个带有配置数据的容器组成,Pod中的容器始终被调度到集群中的同一个工作节点上,并且系统会自动重启失败的容器。通过理解和正确使用各个抽象层提供的运行时配置选项,我们可以构建灵活的组件,这些组件会根据环境提供的值来进行相应的配置。原创 2024-04-08 16:36:44 · 504 阅读 · 0 评论 -
如何为Kubernetes构建最优的容器镜像(一):高效容器镜像的特征、基础镜像层的重用与镜像层的管理
镜像是 Kubernetes 中定义应用的主要打包格式。镜像被用作 Pod 和其他对象的基础,并在有效利用 Kubernetes 功能方面发挥着重要作用。设计精良的镜像具有安全性高、性能卓越、针对性强的特点。它们能够响应 Kubernetes 提供的配置数据或指令,并能够实现 deployment 用来了解内部应用状态的探针。在本文中,我们将介绍一些创建高质量镜像的策略,并讨论几个通用目标,以指导您在将应用容器化时做出决策。原创 2024-04-08 15:32:05 · 949 阅读 · 0 评论 -
k8s集群内偶现无法访问外部域名怎么解?
容器内频现无法访问外部服务,是用测试有如下现象:从容器所在宿主机测试无异常,测试无异常。首先检查coredns pod运行是否正常:如果coredns pod不处于running状态,或pod频繁发生重启,则应检查pod运行异常原因:2、检查coredns日志如果pod状态正常,检查coredns日志:本次故障场景中,可在日志中看到大量如下报错:3、检查coredns负载情况看到上述报错,接着检查coredns pod负载情况:检查coredns资源限制情况:与top命令查询的负载情况比较原创 2022-12-05 12:12:20 · 2671 阅读 · 0 评论 -
K8S某些节点容器网络访问异常的一种原因——网卡“源/目的地址检查”
移动云环境,自建K8S,所有主机处于同一网段,CNI插件是用Calico,BGP模式。某些节点的容器无法与K8S其他node通信,表现为该节点的容器无法访问其他节点及节点上的容器和服务,其他节点和节点上容器也无法访问该节点上的容器,节点间通信正常,仿佛该节点的容器被隔离了一样。通过在容器内及节点上抓包可以看到,数据包在节点与节点网卡之间丢失,如图:异常节点的网卡开启了“源目的地址检查”。该选项移动云默认开启,但无相关介绍。我们从华为云的文档中找到了一些介绍:默认情况下,“源/目的检查”状态为“ON”,系统会原创 2022-06-28 10:58:03 · 1669 阅读 · 3 评论 -
k8s安装kube-prometheus后,kube top命令没有数据的排查思路
最近碰到的一个问题,安装完kube-prometheus后,kubectl top node显示metrics not available yet,但kubectl top po可以使用:原创 2022-03-02 15:23:35 · 2535 阅读 · 0 评论 -
Kubernetes CoreDNS常见问题资料参考
Kubernetes官方文档Pod与Service的DNS: https://kubernetes.io/zh/docs/concepts/services-networking/dns-pod-service/自定义DNS服务: https://kubernetes.io/zh/docs/tasks/administer-cluster/dns-custom-nameservers/调试DNS问题: https://kubernetes.io/zh/docs/tasks/administer-c.原创 2022-01-25 15:03:21 · 568 阅读 · 0 评论 -
从逻辑上深入理解Kubernetes中Ingress及Nginx Ingress Controller的概念及原理
一、从逻辑上理解Ingress和Ingress控制器在传统的业务系统中,应用微服务化后,需要一个统一的入口来将各个服务进行整合,这个入口可以是Nginx、Apache、HAproxy等等。而在K8s中,同样需要一个工具来将应用的各个service整合到统一的入口,这个工具就叫Ingress控制器,Ingress的中文翻译即为“入口”。传统业务与k8s业务简化对比图实现Ingress控制器的方式同样有多种,有基于Apache实现的,有基于Haproxy实现的,有Kubernetes社区基于Ngi原创 2021-09-24 16:21:19 · 2427 阅读 · 0 评论 -
Nginx Ingress Controller原理简介及使用示例
一、概念介绍介绍Nginx Ingress Controller之前,需要先理解三个概念。Ingress:对集群中服务的外部访问进行管理的 API 对象,可以理解为kubernetes中一种定义从集群外部到集群内服务的HTTP/HTTPS 路由的资源类型; Ingress Controller:负责通过负载均衡器(如nginx/haproxy)来实现 Ingress中定义的路由,通常以pod形式运行; IngressClass:一种定义某个具体Ingress Controller的资..原创 2021-08-26 20:20:00 · 11151 阅读 · 6 评论 -
如何在Kubernetes中安装redis集群
1、安装Helm$ wget https://get.helm.sh/helm-v3.6.3-linux-amd64.tar.gz$ tar -zxvf helm-v3.6.3-linux-amd64.tar.gz$ sudo mv linux-amd64/helm /usr/local/bin/helm2、安装redis-operator目录1、安装Helm2、安装redis-operator3、配置secret4、创建一个三主三从的redis集群5、故障恢复原创 2021-08-25 09:25:38 · 1494 阅读 · 12 评论 -
如何在Kubernetes中安装Mysql PXC(Percona XtraDB Cluster)集群
percona官方为我们提供在kubernetes中部署PXC集群的最佳实践:Percona Kubernetes Operator for PXC,https://github.com/percona/percona-xtradb-cluster-operator使用Operator安装PXC的方法如下:1、克隆percona-xtradb-cluster-operator代码仓$ git clone -b v1.9.0 https://github.com/perc..原创 2021-08-20 16:46:04 · 1674 阅读 · 0 评论 -
使用kubeadm初始化k8s集群的一些问题解决办法
1、由于访问不到国外地址报错:could not fetch a Kubernetes version from the internet: unable to get URL "https://dl.k8s.io/release/stable-1.txt": Get "https://storage.googleapis.com/kubernetes-release/release/stable-1.txt": context deadline exceeded (Client.Timeou..原创 2021-08-19 10:19:25 · 4012 阅读 · 0 评论