k8s
文章平均质量分 67
zhaikaiyun
每天学习记录点,作为知识的积累,不然时间久了容易忘。
展开
-
k8s之nginx-ingress做tcp或udp的4层网络负载
检查nginx-ingress是否开启tcp、udp转发[test@test02 ingress]$ kubectl get pod -n ingress-nginx -o yaml |grep -i configmap - --configmap=$(POD_NAMESPACE)/nginx-configuration - --tcp-services-configmap=$(POD_NAMESPACE)/tcp-services - --udp-services-c...原创 2021-12-14 16:14:58 · 5515 阅读 · 1 评论 -
kubectl常用命令
1、批量清理podkubectl get pod -n default | grep UnexpectedAdmissionError| awk '{print $1}' | xargs kubectl delete pod -n default-n 指定命名空间, grep 搜索条件原创 2020-11-02 10:22:33 · 807 阅读 · 0 评论 -
局域网使用kubeadm安装高可用k8s集群
主机列表:ip 主机名 节点 cpu 内存 192.168.23.100 k8smaster01 master 2核 2G 192.168.23.101 k8smaster02 node 2核 2G 192.168.23.102 k8smaster03 node 2核 2G 1...原创 2020-03-03 16:25:45 · 8454 阅读 · 3 评论 -
k8s集群安全机制说明
k8s作为一个分布式集群的管理工具,保证集群的安全性是其一个重要的任务,apiserver是集群内部各个组件通信的中介,也是外部控制的入口,所以k8s的安全机制基本就是围绕保护apiserver来设计的。k8s使用了认证Authentication、鉴权Authorization、准入控制admissionControl三步来保证apiserver的安全。用户通过kubectl、客户端库或者通...原创 2020-02-28 17:55:40 · 1716 阅读 · 0 评论 -
Kubernetes调度器-Pod分配给节点(Taint污点和Toleration容忍)
Taint和Toleration节点亲和性是pod的一种属性(偏好或硬性要求),它使pod被吸引到一类特定的节点。Taint则相反,它使节点能够排斥一类特定的pod。Taint和toleration相互配合,可以用来避免pod被分配到不合适的节点上。每个节点上都可以应用一个或多个taint ,这表示对于那些不能容忍这些taint的pod,是不会被该节点接受的。如果将toleration应用于p...原创 2020-02-27 10:46:10 · 2884 阅读 · 0 评论 -
Kubernetes调度器-Pod分配给节点(node-pod亲和性、固定节点)
1、需求约束一个Pod只能在特定的 Node(s)上运行,或者优先运行在特定的节点上。有几种方法可以实现这点,推荐的方法都是用标签选择器来进行选择。通常这样的约束不是必须的,因为调度器将自动进行合理的放置(比如,将pod分散到节点上,而不是将pod放置在可以资源不足的节点上等等),但在某些情况下,需要更多控制pod停靠的节点,例如,确保pod最终落在连接了SSD的机器上,或者将来自两个不通的服务且...原创 2020-02-26 13:38:51 · 3290 阅读 · 0 评论 -
Kubernetes调度器说明
Kubernetes调度器官网:https://kubernetes.io/zh/docs/concepts/scheduling/#%E8%BF%87%E6%BB%A4%E7%AD%96%E7%95%A51、调度概览在Kubernetes中,调度是指将Pod放置到合适的Node上,然后对应Node上的Kubelet才能够运行这些pod。调度器通过kubernetes的watch机制来发现集...原创 2020-02-25 15:44:32 · 413 阅读 · 0 评论 -
k8s的存储(Persistent Volumes 持久卷卷使用)
官网参考:https://kubernetes.io/docs/concepts/storage/persistent-volumes/#1、介绍管理存储是与管理计算实例不同的问题。PersistentVolume子系统为用户和管理员提供了一个API,该API从存储的使用方式中抽象出存储是如何提供的细节。为此,我们引入了两个新的API资源:persistenvolume和persistenv...原创 2020-02-24 17:35:36 · 3637 阅读 · 0 评论 -
k8s的存储(volume卷使用)
1、Volumes容器中的文件在磁盘上是临时存放的,这给容器中运行的特殊应用程序带来一些问题。首先,当容器崩溃时,kubelet将重新启动容器,容器中的文件将会丢失,因为容器会以干净的状态重建。其次,当在一个Pod中同时运行多个容器时,常常需要在这些容器之间共享文件。Kubernetes抽象出Volume对象来解决这两个问题。2、背景Kubernetes卷具有明确的生命周期——与包裹它的 P...原创 2020-02-24 16:18:07 · 1728 阅读 · 1 评论 -
k8s的存储(secret使用)
1、Secret概览Secret是一种包含少量敏感信息例如密码、token 或 key 的对象。将这些信息放在secret中比放在Pod的定义或者容器镜像中来说更加安全和灵活,并降低意外暴露的风险。2、内置secretService Account使用 API 凭证自动创建和附加 secretKubernetes自动创建包含访问 API凭据的secret,并自动修改您的 pod 以使用此类型...原创 2020-02-24 13:14:22 · 563 阅读 · 0 评论 -
k8s的存储(ConfigMap使用)
1、ConfigMap介绍ConfigMap功能在Kubernetes1.2版本中引入,许多应用程序会从配置文件、命令行参数或环境变量中读取配置信息。ConfigMap API给我们提供了向容器中注入配置信息的机制,ConfigMap可以被用来保存单个属性,也可以用来保存整个配置文件或者JSON二进制大对象 。2、ConfigMap的创建ConfigMap允许您将配置文件与镜像文件分离,以使容器化的...原创 2020-02-24 12:07:51 · 2108 阅读 · 0 评论 -
Kubernetes Ingress原理和案例(ingress-nginx)
1、ingress-nginx工作原理ingress contronler通过与k8s的api进行交互,动态的去感知k8s集群中ingress服务规则的变化,然后读取它,并按照定义的ingress规则,转发到k8s集群中对应的service。而这个ingress规则写明了哪个域名对应k8s集群中的哪个service,然后再根据ingress-controller中的nginx配置模板,生成一段对应...原创 2020-02-17 15:26:53 · 2964 阅读 · 0 评论 -
Kubernetes Service
1、service简介service是一个抽象概念,定义了一个服务的多个pod逻辑合集和访问pod的策略,一般把service称为微服务。这组pod能够被service访问到,通常是通过Label Selector。service能够提供负载均衡的能力,但是在使用上有以下限制:只提供4层负载均衡能力,而没有7层功能,但有时可能需要更多的匹配规则来转发请求,这点上4层负载均衡是不支持的。...原创 2020-02-15 21:15:26 · 273 阅读 · 0 评论 -
Kubernetes Pod 控制器
控制器: k8s中内建了很多controller控制器,相当于一个状态机,用来控制Pod的具体状态和行为。Pod 的分类1)自主式Pod : Pod退出, 此类型Pod不会被创建。2)控制器Pod : 在控制器的生命周期始终维持Pod的副本数量. (就算Pod死亡, 也会自动创建维持Pod的数量) 命令式编程:侧重于如何实现程序,就像我们刚接触编程的时候,需要把程序的实现过程按照逻...原创 2020-02-13 12:24:31 · 195 阅读 · 0 评论 -
k8s的pod容器的生命周期
生命周期概要图1、Init容器介绍:Pod能够具有一个或多个容器,应用运行在容器里面,但是它也可能有一个或多个先于应用容器启动的Init容器。Init容器与普通的容器非常像,除了如下两点:1)Init容器总是运行到成功完成为止2)每个Init容器都必须在下一个Init容器启动之前成功完成如果Pod的Init容器失败,Kubernetes会不断地重启该Pod,直到Init容器成功...原创 2020-02-13 10:10:17 · 3334 阅读 · 0 评论 -
局域网使用kubeadm安装k8s
主机列表:ip 主机名 节点 cpu 内存 192.168.23.100 k8smaster master 2核 2G 192.168.23.101 k8snode01 node 2核 2G 192.168.23.102 k8snode02 node 2核 2G 1、配置本地y...原创 2020-02-12 10:24:35 · 1346 阅读 · 2 评论 -
使用kubeadm部署k8s(2、k8s集群部署)
1、kube-proxy开启ipvs的前置条件默认情况下,Kube-proxy将在kubeadm部署的集群中以iptables模式运行,需要注意的是,当内核版本大于4.19时,移除了nf_conntrack_ipv4模块,kubernetes官方建议使用nf_conntrack代替,否则报错无法找到nf_conntrack_ipv4模块,模式改为lvs调度的方式,kube-proxy主要解决的是s...原创 2020-02-11 12:18:39 · 2224 阅读 · 0 评论 -
使用kubeadm部署k8s(1、环境初始化)
1、主机情况ip 主机名 节点 192.168.23.100 k8smaster master 192.168.23.101 k8snode01 node 192.168.23.102 k8snode02 node 2、修改/etc/hostscat >> /etc/hosts << EOF192.168...原创 2020-02-10 09:47:35 · 1044 阅读 · 0 评论 -
Kubernetes资源清单
什么叫资源?k8s中所有的内容都抽象为资源,资源实例化之后,叫做对象。在k8s中有哪些资源?工作负载型资源(workload):Pod、ReplicaSet、Deployment、StatefulSet、DaemonSet、Job、CronJob(ReplicationController在v1.11版本被废弃)服务发现及负载均衡型资源(ServiceDiscovery LoadBala...原创 2020-02-08 10:49:06 · 1988 阅读 · 0 评论 -
Yaml语法
Yaml说明YAML是"YAML Ain't a Markup Language"(YAML 不是一种标记语言的递归缩写。在开发的这种语言时,YAML 的意思其实是:"Yet Another Markup Language"(仍是一种标记语言),这种语言主要数据作为中心,而不是以标记语言为重点。YAML的语法和其他高级语言类似,并且可以简单表达清单、散列表,标量等数据形态。YAML 的配置文...原创 2020-02-06 20:28:45 · 357 阅读 · 0 评论 -
使用本地yum源安装k8s
Kubernetes集群组件说明:etcd 一个高可用的K/V键值对存储和服务发现系统flannel 实现夸主机的容器网络的通信kube-apiserver 提供kubernetes集群的API调用kube-controller-manager 确保集群服务kube-scheduler 调度容器,分配到Nodekubelet 在Node节点上按照配置文件中定义的容器规格启动容器kub...原创 2020-01-17 17:07:41 · 2140 阅读 · 0 评论 -
docker私有仓库registry(v2)的搭建
1、上传rpm文件,解压yum文件:链接:https://pan.baidu.com/s/1_tSwm2jqXqrV2mbMk0C80g提取码:5gd7[root@k8smaster01 zhaiky]# unzip yum.zipArchive: yum.zip creating: yum/ inflating: yum/docker-1.13.1-103.git7...原创 2020-01-17 14:17:05 · 2013 阅读 · 2 评论 -
no API token found for service account default
kubectl get pods报错Jan 14 12:20:33 k8smaster01 kube-controller-manager: I0114 12:20:33.301483 8247 event.go:217] Event(api.ObjectReference{Kind:"ReplicaSet", Namespace:"default", Name:"nginx-344933...原创 2020-01-15 10:26:51 · 454 阅读 · 0 评论