
Kubernetes
文章平均质量分 62
Kubernetes技术整理
IChen.
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
k8s中的端口hostPort、port、nodePort、targetPort
这样的service会产生一个ClusterIP,这个IP只能在集群内部访问,要想让外部能够直接访问service,需要将service type修改为 nodePort。hostPort是直接将容器的端口与所调度的节点上的端口路由,这样用户就可以通过宿主机的IP加上来访问Pod了,需关注pod漂移策略。targetPort 说的是Pod内的应用暴露的服务端口,Service IP+Port的访问会被代理到这个Target Port。在k8s中,这是一种直接定义Pod网络的方式。原创 2023-11-16 13:37:38 · 1194 阅读 · 0 评论 -
Kubernetes平台部署Grafana Loki Promtail系统
首先创建 promtail 文件夹,然后再文件夹中创建 promtail-rbac.yaml、promtail-configmap.yaml和promtail-daemonset.yaml三个文件。promtail-rbac.yaml 文件内容如下,同样,这里不需要修改什么配置,只需要保证namespace和步骤一中创建的一致即可。promtail-configmap.yaml 文件内容如下,此文件同样只需要保证namespace与步骤一中一致即可,不需要做其他修改。原创 2023-11-08 14:26:14 · 2600 阅读 · 3 评论 -
K8S用户管理体系介绍
在k8s中,有两类用户,service account和user,我们可以通过创建role或clusterrole,再将账户和role或clusterrole进行绑定来给账号赋予权限,实现权限控制,两类账户的作用如下。server account:k8s的进程、pod申请授权时使用的账户。类似于nginx服务会有一个nginx用户。user:k8s的管理人员使用的账户,也就是我们使用的账户。原创 2023-11-08 13:49:56 · 583 阅读 · 0 评论 -
阿里云 k8s 容器服务 设置节点为不可调度的两种方法有什么区别?
两种方法的区别在于:drain 会驱逐原来节点上的所有 pod,而 cordon 只是停止调度, 禁止新的 pod 调度进来,但旧的 pod 不会受影响。原创 2023-11-03 18:11:03 · 274 阅读 · 0 评论 -
如何在k8s中解除角色/集群角色
【代码】如何在k8s中解除角色/集群角色。原创 2023-02-08 13:52:27 · 779 阅读 · 0 评论 -
k8s: [ERROR FileContent--proc-sys-net-bridge-bridge-nf-call-iptables] 安装失败
报错: [ERROR FileContent—proc-sys-net-bridge-bridge-nf-call-iptables]: /proc/sys/net/bridge/bridge-nf-call-iptables contents are not set to 1。原创 2022-09-22 17:26:57 · 2024 阅读 · 0 评论 -
云原生下的CI/CD:安装Argo CD
其中的软件设施,包括 IaaS、Kubernetes 这样的基础设施,也包括应用本身。现在我们已经将名字为 argocd-server 的 Service 改成 NodePort 类型了,可以在集群外部通过 : 来访问 Argo CD,我这里随机生成的 NodePort 端口是 32313。等待一会可以看到此时已经回滚成功,此时 Pod 是 v1 版本的,并且由于此时线上的版本并不是 Git 仓库中最新的版本,因此此时同步状态是 OutOfSync。原创 2022-09-02 18:01:46 · 1450 阅读 · 0 评论 -
Kubernets kubeadm方式安装常见问题
kubelet 的配置文件 : /var/lib/kubelet/kubeadm-flags.env。原创 2022-08-17 10:41:38 · 744 阅读 · 0 评论 -
错误:软件包:kubelet-1.14.2-0.x86_64 (kubernetes)
可用: kubernetes-cni-0.5.1-0.x86_64 (kubernetes)可用: kubernetes-cni-0.5.1-1.x86_64 (kubernetes)可用: kubernetes-cni-0.6.0-0.x86_64 (kubernetes)可用: kubernetes-cni-0.7.5-0.x86_64 (kubernetes)可用: kubernetes-cni-0.8.6-0.x86_64 (kubernetes)原创 2022-08-16 11:28:42 · 910 阅读 · 0 评论 -
[ERROR CRI]: container runtime is not running: output: E0815 18:19:36.279228 21409 remote_runtime.
代码】[ERROR CRI]: container runtime is not running: output: E0815 18:19:36.279228 21409 remote_runtime.原创 2022-08-15 18:22:25 · 2487 阅读 · 0 评论 -
Kubernetes 蓝绿发布、ABTest、滚动发布、灰度发布、金丝雀发布简介
蓝绿发布:一些应用程序只需要部署一个新版本,并需要立即切到这个版本。因此,我们需要执行蓝/绿部署。在进行蓝/绿部署时,应用程序的一个新副本(绿)将与现有版本(蓝)一起部署。然后更新应用程序的入口/路由器以切换到新版本(绿)。然后,您需要等待旧(蓝)版本来完成所有发送给它的请求,但是大多数情况下,应用程序的流量将一次更改为新版本;Kubernetes不支持内置的蓝/绿部署。目前最好的方式是创建新的部署,然后更新应用程序的服务(如service)以指向新的部署;蓝绿部署是不停老版本,部署新版本然后进行测试,原创 2022-01-10 14:43:12 · 944 阅读 · 0 评论 -
Docker Kubernetes YAML文件常用指令
YAML文件常用指令配置文件说明:定义配置时,指定最新稳定版API(当前为v1)。配置文件应该存储在集群之外的版本控制仓库中。如果需要,可以快速回滚配置、重新创建和恢复。应该使用YAML格式编写配置文件,而不是JSON。尽管这些格式都可以使用,但YAML对用户更加友好。可以将相关对象组合成单个文件,通常会更容易管理。不要没必要的指定默认值,简单和最小配置减少错误。在注释中说明一个对象描述更好维护。YAML是一种标记语言很直观的数据序列化格式,可读性高。类似于XML数据描述语言,语原创 2021-06-13 15:54:38 · 450 阅读 · 0 评论 -
Kubernetes K8S之存储ConfigMap详解
一 简介:ConfigMap顾名思义,是用于保存配置数据的键值对,可以用来保存单个属性,也可以保存配置文件。Secret可以为Pod提供密码、Token、私钥等敏感数据;对于一些非敏感数据,比如应用的配置信息,则可以使用ConfigMap。ConfigMap的创建和使用方式与Secret非常类似,主要的不同是以明文的形式存放主机配置规划服务器名称(hostname)系统版本配置内网IP外网IP(模拟)k8s-masterCentOS7.72C/4G/20G17原创 2021-06-30 13:30:09 · 616 阅读 · 0 评论 -
failed to pull image k8s.gcr.io/kube-apiserver:v1.14.1: output: Error response from daemon:
背景:kubeadam init 出错,这也是因为某种神秘的力量导致的k8s.gcr.io连接不上.解决办法: 从dockerhub上收集执行:kubeadm init --kubernetes-version=v1.14.1 --pod-network-cidr=10.244.0.0/16 --service-cidr=10.96.0.0/12 --ignore-preflight-errors=Swap...原创 2021-08-22 12:32:58 · 1076 阅读 · 0 评论 -
Kubernetes的ConfigMap详解
ConfigMap是用来存储配置文件的kubernetes资源对象,所有的配置内容都存储在etcd中。1.创建ConfigMap创建ConfigMap的方式有4种:通过直接在命令行中指定configmap参数创建,即–from-literal通过指定文件创建,即将一个配置文件创建为一个ConfigMap–from-file=<文件>通过指定目录创建,即将一个目录下的所有配置文件创建为一个ConfigMap,–from-file=<目录>事先写好标准的configmap.原创 2021-06-30 13:11:15 · 7971 阅读 · 2 评论 -
Kubernetes的yaml文件中command的使用
前面说了init容器initContainers,这主要是为应用容器做前期准备工作的,一般都会用到shell脚本,这就会用到command,这里写写command的用法。command就是将命令在创建的容器中执行,有这些命令去完成一些工作,command用法和dockerfile中的cmd差不多, command可以单独写,也可以分成command和参数args,可以参考之前的CMD去理解,例如下面的写法都可以。command: ['/bin/sh']command: ["rm", "-.原创 2021-06-13 15:57:15 · 3741 阅读 · 0 评论 -
kubectl管理多个k8s集群
#把每个k8s集群的json配置文件放到/root/.kube/目录下,改为不同名字,通过–kubeconfig实现不同集群操作 kubectl --kubeconfig=/root/.kube/myconfig get pods原创 2021-07-21 17:35:12 · 332 阅读 · 0 评论 -
error execution phase upload-config/kubelet: Error writing Crisocket information for the control-...
swapoff -akubeadm resetsystemctl daemon-reloadsystemctl restart kubeletiptables -F && iptables -t nat -F && iptables -t mangle -F && iptables -X kubeadm init --kubernetes-version=1.18.8 --apiserver-advertise-address=192.168..原创 2021-08-22 12:38:02 · 859 阅读 · 0 评论 -
[ERROR KubeletVersion]: the kubelet version is higher than the control plane version.
[ERROR KubeletVersion]: the kubelet version is higher than the control plane version. This is not a supported version skew and may lead to a malfunctional cluster原因:Kubelet 和 Kubeadm 版本不一致导致查看kubelet 和 kubeadm 版本[root@k8s-master01 cluster]# kubelet .原创 2021-08-22 12:30:36 · 2676 阅读 · 0 评论 -
kubernetes dashboard 您的连接不是私密连接 问题处理
kubernetes 安装 dashboard 后,在chrome通过https访问,结果还是提示:10.34.254.7 通常会使用加密技术来保护您的信息。Google Chrome 此次尝试连接到 10.34.254.7 时,此网站发回了异常的错误凭据。这可能是因为有攻击者在试图冒充 10.34.254.7,或 Wi-Fi 登录屏幕中断了此次连接。请放心,您的信息仍然是安全的,因为 Google Chrome 尚未进行任何数据交换便停止了连接。您目前无法访问 10.34.254.7,因为此网站发送原创 2021-02-21 13:06:05 · 2995 阅读 · 7 评论 -
kubernetes:k8s的部署架构以及工作原理
对于每个想落地kubernetes应用的工程师来说,熟悉kubernetes的架构和工作原理是必经之路,也是必须知道的知识,只有了解kubernetes的架构和工作原理才能更好的应用kubernetes 。kubernetes 整体架构Kubernetes最初源于谷歌内部的Borg,提供了面向应用的容器集群部署和管理系统,所以整体的架构和borg很相似,整个架构有api server,control manager,scheduler,etcd,kubelet,kube-proxy,network-.原创 2021-02-22 11:42:18 · 682 阅读 · 1 评论 -
kubernetes存储 K8S的Configmap配置管理(4种创建方式+使用)
文章目录1.ConfigMap配置管理介绍2.创建ConfigMap的4种方式2.1 使用字面值创建ConfigMap2.2 使用文件创建ConfigMap2.3 使用目录创建ConfigMap2.4 编写configmap的yaml文件创建ConfigMap3.使用configmap3.1 使用configmap设置环境变量3.2 使用conigmap设置命令行参数3.3 通过数据卷使用configmap3.4 configmap热更新参考官网:https://kubernetes.github.io/原创 2021-06-30 13:48:31 · 1075 阅读 · 2 评论 -
kubernetes 本地数据卷和网络数据卷
mkdir volumecd volume/一、emptyDiremptyDir存储卷是Pod生命周期中的一个临时目录,在pod对象被移除时会被一并删除,用得很少,例如同一pod内的多个容器间文件共享,或者作为容器数据的临时存储目录用于数据缓存系统等。1、创建一个redis的pod进行测试,vim edir.yaml[root@k8s-master-101 volume]# cat edir.yaml apiVersion: v1kind: Podmetadata: name: r原创 2021-07-05 16:18:18 · 594 阅读 · 0 评论 -
创建阿里云 容器服务Kubernetes版ACK
目录简介创建集群配置Work配置组件配置使用镜像快速创建无状态Deployment应用应用基本信息容器配置高级设置测试使用私有镜像仓库创建应用准备好镜像仓库及镜像创建YAML简介容器服务Kubernetes版ACK(Alibaba Cloud Container Service for Kubernetes)是全球首批通过Kubernetes一致性认证的服务平台,提供高性能可伸缩的容器应用管理服务,支持企业级Kubernetes容器化应用的生命周期管理。简化集群的搭建和扩容等运维工作,整合阿里云虚拟化、原创 2021-07-10 14:21:04 · 324 阅读 · 0 评论 -
细说kubernetes - 为什么是pod?
前言k8s作为现在最火的容器编排调度平台,好用我也就不必多说了。当我们初识k8s的时候一个新的概念就到了我们眼前,那就是pod。我们在使用了之后也就渐渐的接受了pod这个东西,但是你有没有想过,为什么是pod?k8s为什么会有这样的设计?今天我们就来细细说说这个pod架构图首先我们来回忆看看k8s的架构图是什么样子的这个是来源于 https://www.kubernetes.org.cn/ 中文官网的一个架构图从架构图中我们可以看到,整个k8s的设计架构有以下几个要点:master、n原创 2021-02-22 11:56:17 · 433 阅读 · 2 评论 -
Kubernetes Pod调度到指定Node
问题描述Kubernetes有着自己特定的调度算法与策略,有Master中的Scheduler组件来实现,根据Node资源使用情况自动调度Pod的创建,通常可以满足我们大部分的需求。但是有时我们希望可以将某些Pod调度到特定硬件节点上,这里采用目前最为简单的nodeName和nodeSelector来实现Pod调度。假设以下场景:有三个Node,分别为107、108、109,创建Deployments来部署Tomcat应用,指定在107节点上创建Pod。解决方案nodeNamePod.s原创 2021-05-26 18:19:13 · 1463 阅读 · 0 评论 -
kubernetes指南--弹性伸缩
0x0 pre弹性伸缩这种功能,不是很多系统都已经实现了,我们直接用就行了吗,为什么还需要个指南呢。因为。。。。我们先来看看都有哪些相关知识点吧。。。弹性伸缩涉及到各种软硬件,各色调度平台,策略和系统,其本身就是一个较复杂的课题。此外,kubernetes 不单单是一个容器调度平台,而是一个活跃,庞大的生态系统。kubernetes 弹性伸缩这个课题涉及了诸多知识点,主要如下:- 水平(Horizontal)伸缩- 垂直(Vertical)伸缩- 定时(Scheduled)伸缩- 预测(P原创 2021-06-04 17:30:41 · 4055 阅读 · 2 评论 -
kubernetes之pod调度
调度规则deployment全自动调度: 运行在哪个节点上完全由master的scheduler经过一系列的算法计算得出, 用户无法进行干预nodeselector定向调度: 指定pod调度到一些node上, 通过设置node的标签和deployment的nodeSelctor属性相匹配 多个node有相同标签, scheduler 会选择一个可用的node进行调度 nodeselector定义的标签匹配不上任何node上的标签, 这个pod是无法调度 k8s给node预定义了一些标签, 通过ku原创 2021-05-26 18:15:22 · 189 阅读 · 0 评论 -
Kubernetes运维之使用Prometheus全方位监控K8S (概念篇)
目录:Prometheus架构K8S监控指标及实现思路在K8S平台部署Prometheus基于K8S服务发现的配置解析在K8S平台部署Grafana监控K8S集群中Pod、Node、资源对象使用Grafana可视化展示Prometheus监控数据告警规则与告警通知说在前面的话,现在监控首选的话,肯定是Prometheus+Grafana,也就是很多大型公司也都在用,像RBM,360,网易,基本都是使用这一套监控系统。一、Prometheus 是什么?Prometheus(普罗米修斯原创 2021-07-22 14:27:04 · 1940 阅读 · 1 评论 -
kubeadm部署Kubernetes(k8s)完整版详细教程 <亲测成功!!!>
kubeadm是官方社区推出的一个用于快速部署kubernetes集群的工具。这个工具能通过两条指令完成一个kubernetes集群的部署:# 创建一个 Master 节点$ kubeadm init# 将一个 Node 节点加入到当前集群中$ kubeadm join <Master节点的IP和端口 >1. 安装要求在开始之前,部署Kubernetes集群机器需要满足以下几个条件:一台或多台机器,操作系统 CentOS7.x-86_x64硬件配置:2GB或更多RAM,原创 2021-02-22 14:17:32 · 3334 阅读 · 4 评论 -
Kubernetes工作原理图
kubernetes(k8s)是docker容器用来编排和管理的工具我们通过kubectl向k8s Master发出指令。kubernetes Master主要是提供API Server、Scheduler、Controller组件,接收kubectl的命令,从Node节点获取Node的资源信息,并发出调度任务。Node节点提供kubelet、kube-proxy,每个node节点都安装docker,是实际的执行者。kubernetes不负责网络,所以一般是用flannel或者weave。etcd负责服务原创 2021-02-22 11:44:41 · 717 阅读 · 0 评论 -
Centos7.6部署k8s(v1.14.2)集群
环境说明:Kubernetes这个名字源自希腊语,意思是“舵手”,也是“管理者”,“治理者”等词的源头。k8s是Kubernetes的简称(用数字『8』替代中间的8个字母『ubernete』)前言: 本文通过kudeadm方式在centos7.6上安装kubernetes v1.14.2集群(目前centos和kubernetes都为最新版),共分为六个部分:一、Docker安装;二、k8s安装准备工作;三、Master节点安装;四、Node节点安装;五、Dashboard安装;六、集群原创 2021-08-23 17:01:19 · 790 阅读 · 0 评论