
Kubernetes
文章平均质量分 73
一个开源的,用于管理云平台中多个主机上的容器化的应用,Kubernetes的目标是让部署容器化的应用简单并且高效(powerful),Kubernetes提供了应用部署,规划,更新,维护的一种机制
南宫乘风
当你的才华撑不起你的野心时,只有静下心学习才是唯一的出路
展开
-
掌握Kubernetes API:释放容器编排的潜力
API(Application Programming Interface,应用程序接口): 是一些预先定义的接口(如函数、HTTP接口),或指软件系统不同组成部分衔接的约定。K8s也提供API接口,提供这个接口的是管理节点的apiserver组件,apiserver服务负责提供HTTP API,以便用户、其他组件相互通信。HTTP Token认证:通过一个Token来识别用户。HTTPS 证书认证:基于CA证书签名的数字证书认证。HTTP Base认证:用户名+密码的方式认证。原创 2023-08-31 18:41:32 · 261 阅读 · 0 评论 -
Calico的BGP打通Kubernetes网络和局域网
Calico 是一个开源的容器网络解决方案,可以通过使用 BGP 协议来管理容器网络。与传统的基于 VXLAN 的解决方案相比,使用 Calico 可以避免网络数据包的封装和解封过程,提高了网络传输的效率和吞吐量。在 Kubernetes 集群中,Calico 可以用来打通 Pod 和局域网的网络,从而实现跨主机通信。原创 2023-05-11 21:39:12 · 2404 阅读 · 0 评论 -
Kubernetes的ETCD集群备份、恢复
首先,我们使用Kubernetes的都知道,etcd是k8s的核心所在,会记录各个pod的状态信息。所以重要性极为重要。etcd是kubernetes集群极为重要的一块服务,存储了kubernetes集群所有的数据信息,如Namespace、Pod、Service、路由等状态信息。如果etcd集群发生灾难或者 etcd 集群数据丢失,都会影响k8s集群数据的恢复。因此,通过备份etcd数据来实现kubernetes集群的灾备环境十分重要。我们一点要养成,重要的东西备份、备份、在备份的习惯。 E原创 2022-03-10 15:02:58 · 3437 阅读 · 0 评论 -
Minio--Mysql存储桶通知配置
**!!!中文社区中说的config.json的方式已经打算被废弃了,所以现在最好通过minio客户端的方式进行处理了**·在目标mysql创建数据库miniodb(要用默认字符集,不然会报错)·在minio client的可执行目录下执行如下命令,查看是否已经存在配置mc --insecure admin config get minio notify_mysql添加Mysql通知配置 mc admin config set minio notify_mysql:mysql t..原创 2021-09-22 15:59:58 · 655 阅读 · 1 评论 -
calico-node 报错calico/node is not ready: BIRD is not ready: BGP not established with
错误今天不知道怎么回事,一台机器的calico-node报错,也就是无法初始化正常Events: Type Reason Age From Message ---- ------ ---- ---- ------- Normal Scheduled 45s default-scheduler Successfully assigned kube-system/calico.原创 2021-09-15 10:56:40 · 4754 阅读 · 0 评论 -
解决二进制K8S布署的metrics-server查看集群资源报错权限问题
布署完metircs-server后,但是访问会报错,此处有两个坑1、API聚合功能通过二进制方式部署完成kubernetes后,部署Metrics Server后,查看日志出现下面错误信息:E1231 10:33:31.978715 1 configmap_cafile_content.go:243] key failed with:missing content for CA bundle "client-ca::kube-system::extension-apiserver-...原创 2021-08-01 23:23:37 · 1786 阅读 · 0 评论 -
Kubernetes实战模拟七(wordpress的数据持久化)
Kubernetes实战模拟一(wordpress基础版)Kubernetes实战模拟二(wordpress高可用)Kubernetes实战模拟三(wordpress健康检查和服务质量QoS)Kubernetes实战模拟四(wordpress升级更新)Kubernetes实战模拟五(wordpress的HPA自动扩缩容)Kubernetes实战模拟六(wordpress的账号信息加密)源码地址:https://github.com/nangongchengfeng/Kubern.原创 2021-04-08 00:01:28 · 639 阅读 · 0 评论 -
Kubernetes实战模拟六(wordpress的账号信息加密)
Kubernetes实战模拟一(wordpress基础版)Kubernetes实战模拟二(wordpress高可用)Kubernetes实战模拟三(wordpress健康检查和服务质量QoS)Kubernetes实战模拟四(wordpress升级更新)Kubernetes实战模拟五(wordpress的HPA自动扩缩容)源码地址:https://github.com/nangongchengfeng/Kubernetes/tree/main/wordpress-exampleKube原创 2021-04-07 16:57:04 · 401 阅读 · 0 评论 -
mysql-unknown-option-in-kubernetes错误
错误问题原因:把MySQL的用户密码配置成secrets,然后挂载mysql,mysql会一直报错,无法完成初始Version: '5.7.33' socket: '/var/run/mysqld/mysqld.sock' port: 0 MySQL Community Server (GPL)2021-04-07 15:06:32+08:00 [Note] [Entrypoint]: Temporary server started.Warning: Unable to load '/原创 2021-04-07 15:28:32 · 766 阅读 · 0 评论 -
Kubernetes实战模拟五(wordpress的HPA自动扩缩容)
Kubernetes实战模拟一(wordpress基础版)Kubernetes实战模拟二(wordpress高可用)Kubernetes实战模拟三(wordpress健康检查和服务质量QoS)Kubernetes实战模拟四(wordpress升级更新)源码地址:https://github.com/nangongchengfeng/Kubernetes/tree/main/wordpress-exampleKubernetes实战模拟四,已经构建wordpress的更新升级策略,确保后期原创 2021-04-07 11:17:25 · 589 阅读 · 0 评论 -
Kubernetes实战模拟四(wordpress升级更新)
Kubernetes实战模拟一(wordpress基础版)Kubernetes实战模拟二(wordpress高可用)Kubernetes实战模拟三(wordpress健康检查和服务质量QoS)源码地址:https://github.com/nangongchengfeng/Kubernetes/tree/main/wordpress-exampleKubernetes实战模拟三,已经构建wordpress的健康检查和服务质量,对后期的稳定运行有一定的帮助(1)startupProb.原创 2021-04-06 21:35:06 · 513 阅读 · 1 评论 -
Kubernetes实战模拟三(wordpress健康检查和服务质量QoS)
Kubernetes实战模拟一(wordpress基础版)Kubernetes实战模拟二(wordpress高可用)源码地址:https://github.com/nangongchengfeng/Kubernetes/tree/main/wordpress-exampleKubernetes实战模拟二,已经优化架构,已经采取分离,可以实现高可用,并优化软策略,防止单点故障接下来,慢慢实现健康检查和服务质量版本3思路:分别对2个pod的进行端口检查,判断pod是否正常和流量提供,测试原创 2021-04-05 01:05:46 · 1599 阅读 · 7 评论 -
Kubernetes实战模拟二(wordpress高可用)
Kubernetes实战模拟一(wordpress基础版)源码地址:https://github.com/nangongchengfeng/Kubernetes/tree/main/wordpress-example上一篇文件我们使用pod的构建两个容器,但是问题也是一大堆,根本不适合生产方面。所以我们慢慢解决上面的问题,优化架构。版本2思路:将 Pod 中的两个容器进行拆分,将 Wordpress 和 MySQL 分别部署Wordpress 用多个副本进行部署就可以实现应用的高可用原创 2021-04-03 23:50:52 · 770 阅读 · 1 评论 -
Kubernetes实战模拟一(wordpress基础版)
Kubernetes是现在比较流行的容器化软件。我们日常也比较使用的多,我们都是慢慢的从陌生到熟悉的进阶,只有不断的学习,才能有收获。Kubernetes专栏:https://blog.csdn.net/heian_99/category_9652886.htmlKubernetes官网地址:https://kubernetes.io/这个专栏,模拟Kubernetes的日常发布流程。源码地址:https://github.com/nangongchengfeng/Kubernetes/tr原创 2021-04-03 23:47:45 · 983 阅读 · 1 评论 -
二进制部署Kubernetes安装metrics-server遇到的问题
ubernetes部署metrics-server后执行kubectl top pod或kubectl top node报错Error from server (ServiceUnavailable): the server is currently unable to handle the request (get pods.metrics.k8s.io)一、问题检查步骤:1.1、查看metrics-server服务日志Cluster doesn't provide requesthe原创 2021-03-23 19:16:02 · 1568 阅读 · 0 评论 -
Kubernetes 1.18.3 部署 Traefik2.2
Kubernetes 1.18.3 部署 Traefik2.0Centos 3.10.0-693.el7.x86_64Kubernetes 1.18.3Traefik 2.2[root@k8s-master1 traefik]# kubectl get csNAME STATUS MESSAGE ERRORcontroller-manager Healthy ok schedu原创 2021-03-29 17:15:18 · 1211 阅读 · 0 评论 -
Kubernetes Ingress-nginx高级用法
1、什么是ingressngress(在kubernetes v1.1时添加)暴露从集群外到集群内服务的HTTP或HTTPS路由。定义在ingress资源上的规则控制流量的路由。 internet | [ Ingress ] --|-----|-- [ Services ]一个ingress可以配置用于提供外部可访问的服务url、负载均衡流量、SSL终端和提供虚拟主机名配置。ingress controller负责实现(通常使用负载均衡器(loa.原创 2021-03-20 17:38:51 · 4348 阅读 · 0 评论 -
Prometheus_additional传统配置
prometheus黑盒测试这次使用基于黑盒测试上面。用来收集监控blackbox的数据1、创建secrets官网地址:https://github.com/prometheus-operator/prometheus-operator/blob/master/Documentation/additional-scrape-config.mdcat prometheus-additional.yaml- job_name: 'blackbox' metrics_path: /pro原创 2021-03-18 22:21:16 · 1547 阅读 · 0 评论 -
prometheus黑盒测试
白盒监控:监控一些内部的数据,topic的监控数据,Redis key的大小。内部暴露的指标被称为白盒监控。比较关注的是原因。黑盒监控:站在用户的角度看到的东西。网站不能打开,网站打开的比较慢。比较关注现象,表示正在发生的问题,正在发生的告警。github文档:https://github.com/prometheus/blackbox_exporter关于部署,已经做成yaml格式,一键部署上去就可以了创建comfingmap ---》 挂载到deployments --》暴露...原创 2021-03-18 18:01:08 · 1311 阅读 · 0 评论 -
解决prometheus监控monitoring/kube-controller-manager/0 (0/0 up)的问题
我前面使用Kubernetes构建prometheus监控,没有什么大问题,但是monitoring/kube-controller-manager/0 (0/0 up),这个没有数值。一般出现这个问题,都是Kubernetes部署时,没有对应的标签,导致无法找到资源问题问题一:ip地址正常开启的,但是这个监听端口是127.0.0.1的,普罗米修斯无法直接访问[root@k8s-master01 jiankong]# netstat -lntp | grep controltcp原创 2021-03-18 12:32:12 · 2541 阅读 · 0 评论 -
Kubernetes监控etcd集群(自带metrics接口)
Kubernetes用operator部署prometheus上面采用Kubernetes部署prometheus我们可以使用prometheus来监控自带metrics接口的应用。etcd是Kubernetes的数据库,自带接口,我们可以用etcd作为实例来看看怎么操作。一、监控etcd集群1.1、查看接口信息二进制和kubeadm安装方式不同,他们etcd的存放证书位置也不同二进制[root@k8s-master01 ~]# curl --cert /etc/e原创 2021-03-18 11:37:38 · 1864 阅读 · 0 评论 -
Kubernetes用operator部署prometheus
Operator 模式Operator 是 Kubernetes 的扩展软件,它利用定制资源管理应用及其组件。 Operator 遵循 Kubernetes 的理念,特别是在控制器方面。Operator的场景就是专门给有状态应用而设计的。为什么只给有状态应用?因为无状态应用简单啊,没有服务间的交互,要再开一家火锅店,跟k8s说一声,开一家一样的就可以了。有状态不一样,你开了一家火锅店以后,客户的信息怎么同步,就涉及到与别的火锅店交涉的问题,当然你也可以写个别的程序做这个数据同步的操...原创 2021-03-17 22:51:35 · 777 阅读 · 0 评论 -
Kubernetes升级coredns1.8.3
日常工作中,我们有时会对一些比较低的组件做升级。版本的升级,可以解决一下bug和漏洞,稳定系统的性能。这次我升级对coredns升级。coredns主要是Kubernetes中对域名和ip解析,可以作为内网的dns解析服务器。一、查看当前coredns版本[root@k8s-master01 ~]# kubectl get pod -n kube-system coredns-7ff77c879f-h2jw9 -oyaml | grep image f:imag原创 2021-03-17 21:39:04 · 1040 阅读 · 4 评论 -
Helm(bitnami)部署zookeeper和kafka集群
首先介绍一下bitnamiBitNami是一个开源项目,该项目产生的开源软件包括安装 Web应用程序和解决方案堆栈,以及虚拟设备(通俗易懂的说:就是封装好各种应用包,提供人们使用。)我们平时要部署一套高可用集群,大部分都是找到模板,没必要重复造轮子。BitNami就是提供轮子的。bitnami官方地址: https://bitnami.com/这次我们创建部署zookeeper和kafka集群,采取bitnami提供helm仓库,进行安装和部署。不懂Helm的可以看看Helm部署R...原创 2021-03-15 16:57:54 · 5816 阅读 · 0 评论 -
Helm部署RabbitMQ集群
[root@k8s-master01 ~]# helm create rabbitmq-clusterCreating rabbitmq-cluster[root@k8s-master01 ~]# cd rabbitmq-cluster/[root@k8s-master01 rabbitmq-cluster]# lscharts Chart.yaml templates values.yaml[root@k8s-master01 rabbitmq-cluster]# cd...原创 2021-03-14 17:37:25 · 2658 阅读 · 2 评论 -
Kubernetes通过插件,自动发现注册Rabbitmq集群
RabbitMQ集群安装:StatefulSethttps://github.com/dotbalo/k8s/tree/master/k8s-rabbitmq-cluster原创 2021-03-11 10:58:13 · 645 阅读 · 0 评论 -
Kubernetes使用operator安装Redis集群
通过operator部署redis集群operator部署有状态的应用会简单很多github文档:https://github.com/ucloud/redis-cluster-operator#deploy-redis-cluster-operatorRedis Cluster Operator在Kubernetes上管理Redis-Cluster集群每个主节点及其从节点都由statefulSet管理,为每个statefulSet创建无头svc,并为所有节点创建clusterIP.原创 2021-03-09 21:43:40 · 1032 阅读 · 0 评论 -
Kubernetes部署单Redis
Kubernetes集群中,我们时常要部署中间件,nginx,redis等等首先,这些中间件要容器化,才可以部署到Kubernetes集群中。(1)一般我们到dockerhub官方,寻找镜像https://hub.docker.com/search?q=redis&type=image(2)我们可以自己定制,,公司需要的docker 镜像部署单个Redis(1)首先下载redis的镜像(版本:)docker pull redis:5.0.4-alpine(2)编写c..原创 2021-03-09 10:36:44 · 488 阅读 · 0 评论 -
Kubernetes搭建RooK+Ceph
Rook: 一个自我管理的分布式存储编排系统,它本身并不是存储系统,在存储和k8s之前搭建了一个桥梁,存储系统的搭建或者维护变得特别简单,Rook支持CSI,CSI做一些PVC的快照、PVC扩容等操作。Rook是专用于Cloud-Native环境的文件、块、对象存储服务。它实现了一个自我管理的、自我扩容的、自我修复的分布式存储服务。Rook支持自动部署、启动、配置、分配(provisioning)、扩容/缩容、升级、迁移、灾难恢复、监控,以及资源管理。 为了实现所有这些功能,Rook...原创 2021-03-08 22:05:09 · 582 阅读 · 0 评论 -
Kubernetes的服务质量(QoS)
一、什么是Qos QoS类是Kubernetes用来决定Pod的调度和驱逐的策略 本文介绍怎样配置Pod让其获得特定的服务质量(QoS)类二、QoS级别2.1、QoS级别Guaranteed:POD中所有容器都必须统一设置了limits,并且设置参数都一致,如果有一个容器要设置requests,那么所有容器都要设置,并设置参数同limits一致 Burstable:POD中只要有一个容器,这个容器requests和limits的设置同其他容器设置的不一致 BestEffort原创 2021-03-07 17:40:02 · 869 阅读 · 0 评论 -
Kubernetes准入控制
一、什么是K8S之准入控制 就是在创建资源经过身份验证之后,kube-apiserver在数据写入etcd之前做一次拦截,然后对资源进行更改、判断正确性等操作。一个LimitRange(限制范围)对象提供的限制能够做到:在一个命名空间中实施对每个 Pod 或 Container 最小和最大的资源使用量的限制。 在一个命名空间中实施对每个 PersistentVolumeClaim 能申请的最小和最大的存储空间大小的限制。 在一个命名空间中实施对一种资源的申请值和限制值的比值的控制。..原创 2021-03-07 13:37:09 · 442 阅读 · 0 评论 -
Kubernetes安装Ratel
Ratel是有杜宽开发一个类似Kubernetes-Dashboard,功能正在慢慢完善dotbalo (dotbalo)杜宽githubratel地址:https://github.com/dotbalo/ratel-doc Ratel是一个Kubernetes资源平台,基于管理Kubernetes的资源开发, 可以管理Kubernetes的Deployment、DaemonSet、StatefulSet、Service、Ingress、Pods、Nodes。 也可原创 2021-03-07 10:18:07 · 1355 阅读 · 0 评论 -
Docker无法访问gcr.io的几种解决办法
由于一些原因,在国内无法访问gcr.io上的镜像,在安装kubernetes时经常访问阿里云的地址。面结合实际经验,列举出几种常用的办法来解决这个问题!一、使用阿里云镜像地址地址一:registry.aliyuncs.com/google_containers地址二:registry.cn-hangzhou.aliyuncs.com/google_containers二、使用dockerhub下的mirrorgooglecontainers 这个域名下同步了很多谷歌镜像,比...原创 2021-03-06 22:46:41 · 2882 阅读 · 0 评论 -
Kubernetes认证之RBAC
一、什么是RBAC? Role-based access control(RBAC)基于企业内个人用户属于角色来访问计算和网络的常规访问控制方法。 简单理解为权限与角色关联,用户通过成为角色的成员来得到角色的权限。K8S的RBAC使用rbac.authorization.k8s.io/v1 API组驱动认证决策,准许管理员通过API动态配置策略。为了启用RBAC,需要在apiserver启动参数添加--authorization-mode=RBAC。目前支持RBAC,ABAC(基于属性的...转载 2021-03-06 22:16:21 · 510 阅读 · 0 评论 -
在Kubernetes(k8s)中部署Java应用
目录1、项目迁移到k8s平台的怎样的流程2、Kubernetes基本概念3、构建项目镜像4、部署项目镜像到Kubernetes平台1、项目迁移到k8s平台的怎样的流程2、Kubernetes基本概念 Pod • 最小部署单元 • 一组容器的集合 • 一个Pod中的容器共享网络命名空间 • Pod是短暂的 Controllers • Deployment : ...原创 2020-12-25 10:13:24 · 1226 阅读 · 0 评论 -
kubeadm高可用安装k8s集群1.18.5
1、 基本环境配置1、Kubectl debug 设置一个临时容器2、Sidecar3、Volume:更改目录权限,fsGroup4、ConfigMap和SecretK8S官网:https://kubernetes.io/docs/setup/最新版高可用安装:https://kubernetes.io/docs/setup/production-environment/tools/kubeadm/high-availability/ 主机名 IP原创 2020-11-27 19:10:39 · 979 阅读 · 0 评论 -
Kubernetes(k8s)的调度器 - 调度亲和性详细介绍
节点亲和性pod.spec.nodeAffinitypreferredDuringSchedulingIgnoredDuringExecution:软策略 requiredDuringSchedulingIgnoredDuringExecution:硬策略requiredDuringSchedulingIgnoredDuringExecutionapiVersion: v1kind...原创 2020-02-11 16:02:24 · 562 阅读 · 0 评论 -
Kubernetes(k8s)的调度器详细介绍
简介Scheduler 是 kubernetes 的调度器,主要的任务是把定义的 pod 分配到集群的节点上。听起来非常简单,但有 很多要考虑的问题:公平:如何保证每个节点都能被分配资源 资源高效利用:集群所有资源最大化被使用 效率:调度的性能要好,能够尽快地对大批量的 pod 完成调度工作 灵活:允许用户根据自己的需求控制调度的逻辑 Sheduler 是作为单独的程序运行的...原创 2020-02-11 14:45:11 · 1051 阅读 · 0 评论 -
Kubernetes(k8s)的存储PV-PVC详细介绍
概念PersistentVolume (PV)是由管理员设置的存储,它是群集的一部分。就像节点是集群中的资源一样,PV 也是集群中的资源。 PV 是 Volume 之类的卷插件,但具有独立于使用 PV 的 Pod 的生命周期。此 API 对象包含存储实现的细节,即 NFS、 iSCSI 或特定于云供应商的存储系统PersistentVolumeClaim (PVC)是用户存储...原创 2020-02-09 21:48:44 · 1742 阅读 · 0 评论 -
Kubernetes(k8s)的存储Volume 详细介绍
容器磁盘上的文件的生命周期是短暂的,这就使得在容器中运行重要应用时会出现一些问题。首先,当容器崩溃 时,kubelet 会重启它,但是容器中的文件将丢失——容器以干净的状态(镜像最初的状态)重新启动。其次,在 Pod 中同时运行多个容器时,这些容器之间通常需要共享文件。Kubernetes 中的 Volume 抽象就很好的解决了 这些问题背景Kubernetes 中的卷有明确的寿命 ——...原创 2020-02-08 21:10:17 · 829 阅读 · 0 评论