![](https://img-blog.csdnimg.cn/20201014180756780.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
k8s
小二来碗面
这个作者很懒,什么都没留下…
展开
-
k8s-calico网络策略
一、安装因为Kubernetes官方用的flannel无法实现多租户环境下的网络隔离,建立起来的pod之间实际可以相互访问,而Calico可以实现。所以我们安装的是使用flannel作为通信网络,calico作为网络策略。官网安装地址:https://docs.projectcalico.org/getting-started/kubernetes/flannel/flannel#installing-with-the-kubernetes-api-datastore-recommendedk8s访问原创 2020-12-25 17:15:41 · 818 阅读 · 0 评论 -
k8s-flannel
k8s网络通讯:(1)容器间通信:同一个Pod内的多个容器间的通信,lo(2)Pod通信:Pod IP <–> Pod IP(3)Pod与service通信:PodIP <–> ClusterIP(4)Service与集群外部客户端的通信;CNICNI(Container Network Interface)是CNCF 旗下的一个项目,由一组用于配置Linux 容器的网络接口的规范和库组成,同时还包含了一些插件k8s的CNI:flannel(网络地址分配,网络管理,但原创 2020-12-23 17:00:28 · 452 阅读 · 0 评论 -
k8s-RBAC
一、认证1.进入到证书目录cd /etc/kubernetes/pki/2.创建kxq用户的私钥(umask 077; openssl genrsa -out kxq.key 2048 )3.创建kxq用户的证书openssl req -new -key kxq.key -out kxq.csr -subj "/CN=kxq"4.利用ca.crt,ca.key进行签证[root@master pki]# openssl x509 -req -in kxq.csr -CA ./ca.cr原创 2020-12-22 09:42:24 · 564 阅读 · 1 评论 -
k8s-helm-v3版本使用
一、Helm介绍Helm是一个Kubernetes的包管理工具,就像Linux下的包管理器,如yum/apt等,可以很方便的将之前打包好的yaml文件部署到kubernetes上。Helm有3个重要概念:(1)helm:一个命令行客户端工具,主要用于Kubernetes应用chart的创建、打包、发布和管理。(2)Chart:应用描述,一系列用于描述k8s资源相关文件的集合。(3)Release:基于Chart的部署实体,一个chart被Helm运行后将会生成对应的一个release;将在k8s中原创 2020-12-19 17:01:00 · 1210 阅读 · 1 评论 -
k8s-安装dashboard
前提:又有一个k8s集群安装:1.到github获取配置文件github下面给出方法说使用下面的直接执行就可以了,原来我安装的时候确实可以,但是最近不知道为何找不到地址。kubectl apply -f https://raw.githubusercontent.com/kubernetes/dashboard/v2.0.5/aio/deploy/recommended.yaml上面很明显给出了地址aio/deploy/recommended.yaml所以我们找到配置文件:https://g原创 2020-12-12 11:42:38 · 4071 阅读 · 4 评论 -
k8s-Authorization鉴权
所谓鉴权就是创建用后,将k8s的权限按照需求将权限分配给该用户。1.创建用户和密码adduser userdevpasswd userdev2.创建证书:mkdir -p /usr/local/install-k8s/cert/userdevvim /usr/local/install-k8s/cert/userdev/userdev-csr.json{ "CN": "userdev", "hosts": [], "key": { "algo": "rsa",原创 2020-12-05 09:50:09 · 2826 阅读 · 0 评论 -
k8s-调度亲和性
节点亲和性pod.spec.nodeAffinitypreferredDuringSchedulingIgnoredDuringExecution:软策略requiredDuringSchedulingIgnoredDuringExecution:硬策略requiredDuringSchedulingIgnoredDuringExecution(硬亲和)例子:节点强制不在node2上调度[root@master scheduler]# cat node-affinity.ymlapiVe原创 2020-12-03 11:31:17 · 944 阅读 · 0 评论 -
k8s-污点和容忍度
Taint 和 Toleration节点亲和性,是pod的一种属性(偏好或硬性要求),它使pod被吸引到一类特定的节点。Taint 则相反,它使节点能够排斥一类特定的 podTaint 和 toleration 相互配合,可以用来避免 pod 被分配到不合适的节点上。每个节点上都可以应用一个或多个taint ,这表示对于那些不能容忍这些 taint 的 pod,是不会被该节点接受的。如果将 toleration 应用于 pod上,则表示这些 pod 可以(但不要求)被调度到具有匹配 taint 的节点上原创 2020-12-02 20:15:46 · 2834 阅读 · 2 评论 -
k8s-指定调度节点
Pod.spec.nodeName将 Pod 直接调度到指定的 Node 节点上,会跳过 Scheduler 的调度策略,该匹配规则是强制匹配我的节点:[root@master scheduler]# kubectl get nodeNAME STATUS ROLES AGE VERSIONmaster Ready master 29h v1.19.4node1 Ready worker 29h v1.19.4node2 Re.原创 2020-12-02 15:56:55 · 7168 阅读 · 0 评论 -
k8s-调度说明
简介Scheduler 是 kubernetes 的调度器,主要的任务是把定义的 pod 分配到集群的节点上。听起来非常简单,但有很多要考虑的问题:公平:如何保证每个节点都能被分配资源资源高效利用:集群所有资源最大化被使用效率:调度的性能要好,能够尽快地对大批量的 pod完成调度工作灵活:允许用户根据自己的需求控制调度的逻辑Sheduler 是作为单独的程序运行的,启动之后会一直坚挺 API Server,获取PodSpec.NodeName为空的 pod,对每个 pod 都会创建一个 bi原创 2020-12-02 15:16:52 · 390 阅读 · 0 评论 -
k8s-报错集锦
故障排查:1.官网https://kubernetes.io/zh/docs/setup/production-environment/tools/kubeadm/troubleshooting-kubeadm/2.https://www.cnblogs.com/jinanxiaolaohu/p/10682455.htmlUnable to connect to the server: x509: certificate signed by unknown authority (possibly b原创 2020-12-01 14:32:00 · 304 阅读 · 1 评论 -
k8s-节点打标签
node标签设置后,pod可以根据要求让pod调度到想要的节点上运行,或者不在某节点运行。或者确保pod调度到具有高性能(比如ssd的机器)的节点山上。1.展示节点标签:kubectl get node --show-labels=true2.添加节点标签kubectl label work node1 node=node1kubectl label nodes node2 node=node23.把pod调度到指定标签启动一个deployment副本数为2,让pod调度到node原创 2020-11-26 16:09:20 · 13880 阅读 · 0 评论 -
kubenetes之将pod分配给节点
一、 nodeSelector1.添加标签到节点执行 kubectl get nodes 命令获取集群的节点名称。kubectl label nodes <node-name> <label-key>=<label-value> 命令将标签添加到你所选择的节点上。2.添加 nodeSelector 字段到 Pod 配置中pods/pod-nginx.yamlapiVersion: v1kind: Podmetadata: name: nginx l原创 2020-08-12 17:53:11 · 537 阅读 · 0 评论 -
kubenetes之污点和容忍度
容忍度(Tolerations)是应用于 Pod 上的,允许(但并不要求)Pod 调度到带有与之匹配的污点的节点上。污点和容忍度(Toleration)相互配合,可以用来避免 Pod 被分配到不合适的节点上。 每个节点上都可以应用一个或多个污点,这表示对于那些不能容忍这些污点的 Pod,是不会被该节点接受的。用法:可以使用kubectl给节点增加一个污点kubectl taint nodes node1 key=value:NoSchedule若要移除污点:kubectl taint nodes转载 2020-08-12 10:59:57 · 861 阅读 · 0 评论 -
helm安装gitlab-runner
参考:官方:https://docs.gitlab.com/runner/install/kubernetes.html阿里:https://www.alibabacloud.com/help/zh/doc-detail/106968.htm转载 2020-06-02 13:45:49 · 1255 阅读 · 0 评论 -
kubernetes-StatefulSet
关于StatefulSet匹配Pod 那么(网络标识)的模式为:(statefulSet名称)-序号,比如上面个的示例:web-0,web-1,web-2StatefulSet为每个Pod副本创建了一个DNS域名,这个域名的格式为: $(podname).(headless servername),也就是意味着服务间通过Pod域名通信而非Pod IP,因为当Pod所在Node发生故障...原创 2020-05-04 19:27:52 · 661 阅读 · 0 评论 -
kubernetes-存储-pv
概念:PersistentVolume(PV)是由管理员设置的存储,他是集群中的一部分.就像节点是集群中的资源一样,PV也是集群中资源.PV是Volume之类的卷插件,但具有独立使用的Pod的生命周期.此API对象包含存储实现的细节,即NFS、ISCSI或特定于云供应商的存储系统.PersistentVolumeClaim(PVC)使用户存储的请求.它与Pod相似.Pod消耗节点资源,PV...原创 2020-05-04 00:48:14 · 190 阅读 · 0 评论 -
kubernetes-存储-volume
背景:kubernetes中的卷有明确的寿命–与封装它的的Pod相同.所以,卷的生命比Pod中的所有容器都长,当这个容器重启时数据仍然保存.当然,但Pod不在存在时,卷也将不复存在,也许更重要的是,kubernetes支持多种类型的卷,pod可以同事使用任意数量的卷.卷的类型...原创 2020-05-03 18:31:24 · 119 阅读 · 0 评论 -
kubernetes-存储-Secret
Secret存在的意义:Secret解决了密码、token、秘钥等敏感数据的配置问题,而不需要把这秀敏感数据暴露到镜像或者Pod Spec中。Secret可以以volume或者环境变量的方式使用。Secret有三种类型:Service Account:用来访问kubernetesAPI,由Kubernetes自动创建,并且会自动挂载到Pod的/run/secrets/kubernete...原创 2020-05-01 19:04:13 · 239 阅读 · 0 评论 -
kuberbetes-存储-ConfigMap
k8s中存储分为以下几类:ConfigMap、Volume、Secret、Perstent Volume(pv)ConfigMap:此功能式是在kubernetes1.2版本中引入,许多应用程序会从配置文件、命令行参数或环境变量中读取配置信息。Config Map API给我们提供工了像容器中注入配置信息的机制,ConfigMap可以被采用保存单个属性,要也可以用来保存整个配置文件或者JSO...原创 2020-05-01 11:04:33 · 205 阅读 · 0 评论 -
k8s-helm
一、helm简介:做为Kubernetes的一个包管理工具,Helm具有如下功能:创建新的chartchart打包成tgz格式上传chart到chart仓库或从仓库中下载chart在Kubernetes集群中安装或卸载chart管理用Helm安装的chart的发布周期Helm有两个重要概念:chart:包含了创建Kubernetes的一个应用实例的必要信息release:是一个...原创 2020-04-19 18:29:52 · 368 阅读 · 0 评论 -
pv和StatefulSet
持久化演示说明-NFS1.安装nfs服务器node1节点(ip:192.168.10.207): yum install -y nfs-common nfs-utils rpcbind [root@node01 /]# mkdir /nfs{1..3}[root@node01 /]# lsbin boot data dev etc home lib lib64 med...原创 2020-04-18 17:09:05 · 441 阅读 · 0 评论 -
k8s之configmap
1.基于文件创建要基于一个或多个文件创建 ConfigMap,请使用 --from-file。只要文件包含键值对,您就可以通过任何明文格式指定文件,例如 .properties、.txt 或 .env。[root@apiserver dir]# vim game.properties[root@apiserver dir]# vim ui.properties[root@apiserver...原创 2020-04-16 10:55:59 · 365 阅读 · 0 评论 -
ingress-auth
1.安装yum -y install httpd2.过程[root@apiserver local]# mkdir basic-auth[root@apiserver local]# cd basic-auth/[root@apiserver basic-auth]# ls[root@apiserver basic-auth]# htpasswd -c auth fooNew pa...原创 2020-04-15 16:48:47 · 306 阅读 · 0 评论 -
k8s重新设置节点\重置
master节点配置1.重新设置kubeadm reset2初始化kubeadm init --config=kubeadm-config.yaml --upload-certs3.删除并重新建配置#只在 master 节点执行rm -rf /root/.kube/mkdir /root/.kube/cp -i /etc/kubernetes/admin.conf /root/....原创 2020-04-09 18:57:06 · 6194 阅读 · 0 评论 -
k8s出错:The connection to the server localhost:8080 was refused - did you specif...
k8s使用时报错:[welin@apiserver ~]$ kubectl get podThe connection to the server localhost:8080 was refused - did you specify the right host or port?出现这个问题的原因是kubectl命令需要使用kubernetes-admin来运行,解决方法如下,将主节点...原创 2020-01-17 11:28:49 · 4412 阅读 · 0 评论 -
k8s-nginx-ingress-3
ingress HTTPS代理访问:创建证书,以及cert存储方式:openssl req -x509 -sha256 -nodes -days 365 -newkey rsa:2048 -keyout tls.key -out tls.crt -subj "/CN=nginxsvc/O=nginxsvc"kubectl create secret tls tls-secret --ke...原创 2020-01-03 18:32:59 · 150 阅读 · 0 评论 -
k8s-nginx-ingress-2
ingress实现虚拟主机的方案:步骤:总的:建立两个deployment 两个对应的svc,和两个ingress建立yaml文件vimdeployment.yamlapiVersion: extensions/v1beta1kind: Deploymentmetadata: name: deployment-1spec: replicas: 2 template...原创 2020-01-03 15:52:57 · 406 阅读 · 0 评论 -
k8s-nginx-ingress-1
启动ingress1.官网下载yaml,官网地址:https://kubernetes.github.io/ 也就是去官网复制下面两句话,并在主节点上运行:复制yaml(应该算是deployment部分):kubectl apply -f https://raw.githubusercontent.com/kubernetes/ingress-nginx/master/deploy/stat...原创 2020-01-03 15:52:49 · 377 阅读 · 0 评论 -
k8s-svc实验
示例:1.创建yaml文件(1个deployment、1个service)vim svc-deployment.yamlapiVersion: apps/v1kind: Deploymentmetadata: name: myapp-deploy namespace: defaultspec: replicas: 3 selector: matchL...原创 2020-01-02 18:28:57 · 3000 阅读 · 1 评论 -
k8s-svc-代理模式
userspace 代理模式这种模式,kube-proxy 会监视 Kubernetes master 对 Service 对象和 Endpoints 对象的添加和移除。 对每个 Service,它会在本地 Node 上打开一个端口(随机选择)。 任何连接到“代理端口”的请求,都会被代理到 Service 的backend Pods 中的某个上面(如 Endpoints 所报告的一样)。 使用哪...转载 2020-01-02 16:27:32 · 582 阅读 · 0 评论 -
k8s-DaemonSet、job、crontJob
介绍 DaemonSetDaemonSet 控制器确保所有(或一部分)的节点都运行了一个指定的 Pod 副本。每当向集群中添加一个节点时,指定的 Pod 副本也将添加到该节点上当节点从集群中移除时,Pod 也就被垃圾回收了删除一个 DaemonSet 可以清理所有由其创建的 PodDaemonSet 的典型使用场景有:在每个节点上运行集群的存储守护进程,例如 glu...原创 2019-12-31 17:57:49 · 246 阅读 · 0 评论 -
k8s-资源控制器RC、RS 、deployment
rs介绍:ReplicationController和ReplicaSet介绍 RC(ReplicationController)主要的作用就是用来确保容器应用的副本数始终保持在用户定义的副本数。即如果有容器异常退出,会自动创建新的Pod来替代;而如果异常多出来的容器也会自动回收Kubernetes 官方建议使用RS(Replicaset)替代RC(ReplicationControll...原创 2019-12-31 15:29:30 · 3043 阅读 · 0 评论 -
k8s-postStart和preStop
容器的生命周期事件挂接处理函数。Kubernetes 支持 postStart 和 preStop 事件。 当一个容器启动后,Kubernetes 将立即发送 postStart 事件;在容器被终结之前, Kubernetes 将发送一个 preStop 事件。背景:应用容器启动之后如果要做点配置之类的 ,可以使用postStartvim post.yamlapiVersion: v1...原创 2019-12-30 17:00:09 · 4630 阅读 · 0 评论 -
k8s-探针
探针有两种:readness(就需检测)、liveness(生命检测)检测有三种模式:exec、tcpSocket、httpGetreadness:作用:用于判断pod是否已经可以被访问,如果请求失败,会从service的后端服务列表中移除。场景:服务需要依赖大量的缓存数据,但是数据并没有load完成,此时服务是不可用的;服务依赖另一个进程的启动完成,在完全启动完成之前,服务不可用;服务依...原创 2019-12-30 15:22:00 · 1172 阅读 · 0 评论 -
k8s基础知识
今天又反过来看了一下基础命令,这篇文章讲的比较清晰:https://www.cnblogs.com/zhenyuyaodidiao/p/6500720.html转载 2019-12-30 09:59:59 · 87 阅读 · 0 评论 -
k8s-initC
Init 容器能做什么?因为 Init 容器具有与应用容器分离的单独镜像,其启动相关代码具有如下优势:Init 容器可以包含一些安装过程中应用容器中不存在的实用工具或个性化代码。例如,没有必要仅为了在安装过程中使用类似 sed、 awk、python 或 dig 这样的工具而去FROM 一个镜像来生成一个新的镜像。Init 容器可以安全地运行这些工具,避免这些工具导致应用镜像的安全性降低。...原创 2019-12-29 19:00:02 · 893 阅读 · 0 评论 -
k8s-字段说明
什么是pod:以下内容摘抄自 Kubernetes官方文档:Pod 是 Kubernetes 最基本的组成块,它是 Kubernetes 最小、最简单的可用来创建和部署的单元。 一个 Pod 代表了一个运行在集群里的进程。Pod 里封装了一个(或者多个)应用容器,存储资源,以及惟一的网络 IP。Docker 是 Kubernetes Pod 里最常见的运行环境, 当然 Pod 也支持其他...原创 2019-12-29 18:35:34 · 3605 阅读 · 0 评论 -
k8s-安装Kuboard
前提安装 Kuboard 时,假设您已经有一个 Kubernetes 集群兼容性安装安装kuboardkubectl apply -f https://kuboard.cn/install-script/kuboard.yaml查看 Kuboard 运行状态:kubectl get pods -l k8s.eip.work/name=kuboard -n kube-system...原创 2019-12-28 17:54:13 · 1005 阅读 · 0 评论 -
k8s安装
环境:使用virtualbox建了两台虚拟机:节点系统内核数内存存储mastercentos:724G20Gnode1centos:724G20G版本:Kubernetes v1.15.1Docker 18.09.7安装docker卸载旧版本在 master 节点和 worker 节点都要执行sudo yum remove ...原创 2019-12-28 16:50:57 · 468 阅读 · 0 评论