![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
K8s
文章平均质量分 69
运维-大白同学
运维工程师,SRE,devops,应用运维等
展开
-
k8s集群维护----etcd数据库备份与恢复------k8s版本升级
1.0etcd数据库备份与恢复1.1安装工具yum -y install etcd1.2备份ETCDCTL_API=3 etcdctl \ #指定3版本 snapshot save snap.db \ #备份命令--endpoints=https://127.0.0.1:2379 \ # #指定ip原创 2021-05-04 22:34:09 · 532 阅读 · 0 评论 -
k8s安全框架-rbac授权--网络访问限制
• K8S安全控制框架主要由下面3个阶段进行控制,每一个阶段都 支持插件方式,通过API Server配置来启用插件。1. Authentication(鉴权)2. Authorization(授权)3. Admission Control(准入控制)• 客户端要想访问K8s集群API Server,一般需要证书、Token或 者用户名+密码;如果Pod访问,需要ServiceAccount三种客户端身份认证:• HTTPS 证书认证:基于CA证书签名的数字证书认证• HTTP Token认原创 2021-05-03 18:12:23 · 633 阅读 · 0 评论 -
StatefulSetk控制器
无状态与有状态:Deployment控制器设计原则:管理的所有pod一模一样,提供同一个服务,也不考虑在哪台node运行,可以随意扩容和缩容。这种应用称为无状态,例如web服务在实际场景中,这并不能满足所有应用,尤其是分布式应用,会部署多个实例,这些实例之间往往有依赖关系,例如主从关系,主备关系,这种应用称为有状态,如 mysql主从,etcd集群StatefulSet特点:部署有状态应用解决pod独立生命周期,保持Pod启动顺序和唯一性1.稳定,唯一的网络标识符,持久存储2.有序,优雅的部署原创 2021-04-30 15:38:41 · 126 阅读 · 0 评论 -
k8s-存储卷类型-emptyDir-hostPath-网络存储-NFS-持久卷PV(静态动态)
为什么需要存储卷?1.启动时需要初始化数据,例如配置文件2.启动过程中产生临时数据,该临时数据需要多个容器间共享3.启动过程中产生持久数据,例如mysql的data数据kubernetes中的volume提供了在容器中挂在外度存储的能力pod需要设置卷来源(soec.volume)和挂载点(spec.containers.volumeMount两个信息后才能使用相应的volume常用的数据卷)1.本地(hostPath, emptyDir)2.网络(NFS,Ceph, GlusterFS)3原创 2021-04-25 17:23:44 · 549 阅读 · 0 评论 -
K8S入门学习笔记第七天,service意义,service类型,svc代理模式,Ingress域名访问测试
Service存在的意义pod IP不固定?增加一个控制器负责动态获取Pod列表IP,动态更新到负载均衡器配置Pod是多副本?前面增加一个负载均衡器为了解决上面两个问题,K8S引入Service。kubectl create deployment nginx --image=nginx --dry-run -o yaml > zf.yaml kubectl apply -f zf.yaml #创建podkubectl expose deployment nginx原创 2021-04-18 18:52:21 · 636 阅读 · 0 评论 -
K8S入门学习笔记第六天,nodeSelector,nodeAffinity,Taint,DaemonSet控制器
nodeSelector和nodeAffinity作用分别是什么?nodeSelector:节点选择器用于将Pod调度到匹配label的node上,如果没有匹配的标签会调度失败。完全匹配节点标签,固定到pod的特定节点。nodeAffinity:节点亲和器...原创 2021-04-05 20:04:33 · 622 阅读 · 0 评论 -
K8S入门学习笔记第五天,pod资源限制,nodeSelector打标签
创建一个一个pod流程kubernetes基于list-watch机制的控制器架构,实现组件间交互的解耦。kubectl run ----->apiserver ----->etcd ----->scheduler1.kubectl发起一个创建pod请求2.apiserver收到创建pod请求,将请求的配置写道etcd3.sheduler通过list/watch获取到pod配置,根据pod配置选择一个合适的节点,然后将选择结果返回给apiserver4.kubelet获取绑原创 2021-03-30 10:05:17 · 652 阅读 · 1 评论 -
使用kubeadm搭建高可用的K8s集群
kubeadm是官方社区推出的一个用于快速部署kubernetes集群的工具。这个工具能通过两条指令完成一个kubernetes集群的部署:# 创建一个 Master 节点$ kubeadm init# 将一个 Node 节点加入到当前集群中$ kubeadm join <Master节点的IP和端口 >1. 安装要求在开始之前,部署Kubernetes集群机器需要满足以下几个条件:一台或多台机器,操作系统 CentOS7.x-86_x64硬件配置:2GB或更多RAM,2原创 2021-03-29 16:07:06 · 225 阅读 · 0 评论 -
K8S入门学习笔记第四天,pod概念,pod健康检查, 静态Pod
Pod对象:基本概念pod是kubernetes创建和管理的最小单元,一个pod由一个或者多个容器组成Pod的特点:一个pod可以理解为是一个应用实例,提供服务pod中容器始终部署在一个Node上pod中容器共享网络,存储资源kubernets直接管理pod,而不是容器pod可以运行单个容器或者多个容器运行多个容器的条件1.两个容器之间发生文件交互2.两个应用需要通过127.0.0.1或者socket通信3.两个应用需要发生频繁的调用Pod对象:资源共享实现机制1.网络共享将原创 2021-03-29 14:25:33 · 338 阅读 · 0 评论 -
K8S入门学习笔记第三天,yaml文件基本格式,Deployment主要功能,部署应用流程
应用程序生命周期管理dockerfile Deployment ServiceStatefulSet IngressDaemonSet服务编排: YAML文件格式说明K8S是一个容器编排引擎,使用YAML文件编排要部署的应用。不支持制表符 “tab” 缩进,使用空格缩进通常开头缩进2个空格字符后缩1个空格,入冒号,逗号等“---”表示YAML格原创 2021-03-24 00:57:56 · 408 阅读 · 0 评论 -
K8S入门学习笔记第二天,认识k8s集群,集群报错排查,管理K8S日志方法
查看master 组件的状态kubectl get cs查看k8s所有资源信息kubectl api-resources资源名称 缩写 版本 指定命名空间(-n) 指定资源名称 NAME SHORTNAMES APIVERSION NAMESPACED KINDbindings原创 2021-03-19 18:19:42 · 358 阅读 · 0 评论 -
K8S入门学习笔记第一天,使用kubeadmin部署集群,node节点获取kubectl命名,容器切换为containerd
检测之前的集群环境是否正常两条命令1.kubectl get pods -n kube-system#检测k8s组件kube-system命名空间下的pod是否正常2.kubectl get nodes,pod,svc#检查node,pod,svc是否正常#发现有一个pod启动不正常查看日志发现是无法启动识别我的机器网卡,修改calico.yaml重新生成pod kubectl logs -f calico-kube-controllers-69496d8b75-wzlbl -n原创 2021-03-15 18:05:49 · 1664 阅读 · 0 评论 -
二进制一键部署K8S集群实战
本次部署采用ansible一键部署完成官方文档 https://github.com/lizhenliang/ansible-install-k8s准备三台服务器ip角色服务192.168.106.102K8S-masterkube-apiserver,kube-controller-manager,kube-scheduler,etcd192.168.106.103K8S-node1kubelet,kube-proxy,docker etcd192.原创 2021-02-20 16:55:56 · 564 阅读 · 2 评论 -
k8s实战之理解helm
helm V3的特性:架构改变,去掉Tiller,直接helm通过kubeconfig连接apiserverrelease名称可以在不同命令空间重用chart支持放到docker镜像仓库K8S部署一个应用的流程如下编写 yaml : deployment service ingress1.0创建 deployment模板kubectl create deployment nginx --image=nginx --dry-run -o yaml > dep原创 2021-02-03 01:00:51 · 489 阅读 · 0 评论 -
K8S--------Pod与lngress之间的关系
通过Service关联Pod基于域名访问通过Ingress Controller实现Pod的负载均衡-支持TCP/UDP4层和HTTP7层协议部署Ingress控制器原创 2021-02-02 15:33:16 · 270 阅读 · 0 评论 -
K8S-service存在的意义
1.0 service的意义:1.防止Pod失联(发现服务)2.定义一组Pod的访问策略(负载均衡)2.0 Pod 与service之间的关系:1.通过lable-selector相关联(标签)2.通过service实现pod的负载均衡(TCP/UDP4层),service实现的负载均衡是7层的(应用层)3.0 service主要类型:3.1: ClusterIP,每创建一个service都会创建一个ClusterIP,(主要是给集群内部访问) 提供一个类似虚拟VIP通过访问这个IP转发到后原创 2021-01-25 16:31:16 · 536 阅读 · 0 评论 -
K8S实战之理解Pod
1.Pod基本概念Pod 存在的意义:pod为亲密性应用而存在两个容器之间发生文件交互的容器,两个应用需要通过127.0.0.1或者socket通信(共享网络) 两个应用需要频繁发生调用最小的部署单元:以Pod为最小原子调度一组容器的集合:一个pod可以运行多个容器实验一:验证pod共享网络cat 123.yamlapiVersion: v1kind: Podmetadata: labels: app: my-pod name: my-pod namespac原创 2021-01-15 18:10:46 · 178 阅读 · 0 评论 -
K8S实战之部署java应用
kubernetes基本概念Pod:1.最小的部署单元,2.一组容器的集合3.一个pod中的容器共享网络命名空间4.生命周期是短暂的Controllers:1.Deployment:部署无状态应用2.Statefulset:部署有状态应用3.Replicaset:确保预期的Pod副本数量4.Daemonset: 确保node运行同一个pod5.Job:一次性任务6.Cronjob:定时任务更高级层次对象,部署和管理podService:防止Pod失联,找到你需要Pod定义原创 2021-01-14 19:20:30 · 1304 阅读 · 4 评论 -
K8S实战之环境部署1.18(一)
#安装要求,准备环境#系统centos7.6 #硬件:2个CPU,2G内存 #可以访问外网,禁用swap#提前安装docker环境准备三台服务器服务器ip服务器名称192.168.106.102k8s-master192.168.106.103k8s-node01192.168.106.104k8s-node021.0 初始化系统环境,以下命令三台服务器全部执行1.1关闭防火墙systemctl stop firew原创 2021-01-13 18:32:15 · 485 阅读 · 0 评论 -
Prometheus完整的部署方案+实战实例
Prometheus简介是一套开源的系统监控报警框架。Prometheus作为新一代的云原生监控系统,相比传统监控监控系统(Nagios或者Zabbix)拥有如下优点易管理性:Prometheus核心部分只有一个单独的二进制文件,可直接在本地工作,不依赖于分布式存储高效性:单一Prometheus可以处理数以百万的监控指标;每秒处理数十万的数据点易于伸缩性:通过使用功能分区(sharing)+联邦集群(federation)可以对Prometheus进行扩展,形成一个逻辑集群丰富的看板:多种可视化图原创 2021-01-11 23:39:13 · 836 阅读 · 1 评论 -
使用docker swarm 搭建docker集群
简介:Docker Swarm 和 Docker Compose 一样,都是 Docker 官方容器编排项目,但不同的是,Docker Compose 是一个在单个服务器或主机上创建多个容器的工具,而 Docker Swarm 则可以在多个服务器或主机上创建容器集群服务,对于微服务的部署,显然 Docker Swarm 会更加适合。Swarm 关键概念1)Swarm集群的管理和编排是使用嵌入到 docker 引擎的 SwarmKit,可以在 docker 初始化时启动 swarm 模式或者加入已存在的原创 2020-10-27 15:05:40 · 480 阅读 · 0 评论 -
K8S集群增加UI页面 Dashboard-2.0.3
tab k8s命令方法yum install -y bash-completionsource /usr/share/bash-completion/bash_completionecho "source <(kubectl completion bash)" >> ~/.bashrcsource <(kubectl completion bash)第一步 检查之前的集群环境kubectl get nodes第二步下载kubernetes-dashboard.y原创 2020-08-25 16:20:48 · 594 阅读 · 2 评论