草庐IT

etcd未授权到控制k8s集群

在安装完K8s后,默认会安装etcd组件,etcd是一个高可用的key-value数据库,它为k8s集群提供底层数据存储,保存了整个集群的状态。大多数情形下,数据库中的内容没有加密,因此如果黑客拿下etcd,就意味着能控制整个K8s集群。etcd未授权访问如果目标在启动etcd的时候没有开启证书认证选项,且2379端口直接对外开放的话,则存在etcd未授权访问漏洞。访问目标的https://IP:2379/version或https://IP:2379/v2/keys,看看是否存在未授权访问。如果显示如下,则证明存在未授权访问。1.查找token需要使用到etcd命令行连接工具:etcdctl

搭建K8S集群

搭建K8S集群部署环境三台2核2G20G硬盘的服务器或虚拟机,文中使用的系统是centos7.9docker:19.03.15-3.el7kubernetes:1.23.6初始化操作关闭防火墙systemctlstopfirewalldsystemctldisablefirewalld关闭selinuxsed-i's/enforcing/disabled/'/etc/selinux/config关闭硬盘swap分区sed-ri's/.*swap.*/#&/'/etc/fstab完成初始化操作后重启服务器(虚拟机)根据规划设置主机名并修改/etc/hosts文件hostnamectlset-ho

c++ - 如何在 std::map 中尝试放置 POD 结构?

我有一张int->{basictypes}的map,我需要存储。我想简单地创建一个struct{intf1,intf2;};并直接存储值,在存储过程中就地构造结构。我不希望有任何重复的键,所以try_emplace看起来很理想。我写了这段代码://mcve.cpp#include#includestructvarious{intf1,f2;};usingmap_t=std::map;voidexample(){map_tdict;//dict.try_emplace(1,2);dict.try_emplace(1,1,2);//dict.try_emplace(1,{1,2});}但是

CentOS 7.9 kubeadm安装K8S 1.28.2

CentOS7.9kubeadm安装K8S1.28.2master   192.168.2.191worker1  192.168.2.10一、设置master主机名、服务器初始化配置设置虚拟机IP、网关vi/etc/sysconfig/network-scripts/ifcfg-ens33servicenetworkrestartservicenetworkrestartserviceNetworkManagerstatusserviceNetworkManagerstopjournalctl-xeservicenetworkrestart#虚拟机ip地址被占用,network服务启动不了1

c++ - 仅用于基本 POD 的模板特化

模板特化是否有一个微妙的技巧,以便我可以将一种特化应用于basicPOD(当我说basicPOD时,我并不是特别想要structPOD(但我会接受)).templatestructDoStuff{voidoperator()(){std::coutstructDoStuff{voidoperator()(){std::cout或者我是否必须为每个内置类型编写特化?templatestructDoStuff{voidoperator()(){std::coutstructDoStuff{voidoperator()(){std::cout单元测试。intmain(){DoStuffint

K8S 入门实战(3)

上篇文章记录了kubeadm工具搭建kubernetes集群的过程,本文记录K8S一些核心概念以及各个组件是如何协调工作的。1.K8S核心架构K8S采用了控制面/数据面(ControlPlane/DataPlane)架构,集群中的主机被称为节点,主机可以是物理机也可以是虚拟机。其中控制节点叫做master节点,数据节点叫做worker节点。worker节点工作是靠master节点进行管理和调度的,进入节点内部如下图所示。2.mater节点核心组件apiserver是Master节点中的一个组件,同时也是整个Kubernetes系统的唯一入口,它对外公开了一系列的RESTfulAPI,并且加上了

【K8S 云原生】K8S的对外服务—ingress

目录一、K8S的Service1、Service的作用2、Service类型:二、ingress1、ingress的组成:2、ingress资源的定义项:三、nginx-ingress-controller暴露服务端的方式1、Deployment+LoadBalancer模式:1、工作流程图:2、Daemonset+hostnetwork+nodeSelector模式:1、工作流程图2、实验:3、deployment+NodePort1、实验:4、通过虚拟主机的方式实现http代理5、ingress实现https代理访问:5.1、nginx的登录账户认证:5.2、nginx的重写:6、总结:四

k8s的对外服务---ingress

service的作用体现在两个方面:集群内部:不断追踪pod的变化。他会更新endpoint中的pod对象,基于pod的IP地址不断变化的一种服务发现机制。集群外部:类似负载均衡器,把流量IP+端口,不涉及转发url(http、https)。把请求转发到pod当中。service有四种类型:ClusterIP:创建service的默认类型NodePort:容器端口>service端口>nodeport。设定了nodeport后,每个节点都会有一个端口被打开。端口范围:30000-32767。访问:节点ip+30000-32767实现负载均衡loadbalancer:云平台上的一种service

c++ - POD成员默认初始化不带大括号

给定代码:structTest{inta=1;intb=2;};Testtest1;Testtest2{};对于test2,我确定test2.a==1和test2.b==2。test1(没有{})是否保证(或不)相同? 最佳答案 线Testtest1;等同于使用默认构造函数进行初始化,如果没有带有显式初始化列表且没有Test()=deleted;的手写构造函数,最终将设置两个成员为其指定的初始值1和2。“默认构造函数”是可以不带参数调用的构造函数,这正是上述语句的情况。您可以在standard中阅读默认构造函数的规则。-转到§12.

K8s 概念及组件

K8s的全称为Kubernetes,是一种开源的容器编排平台,用于自动化部署以及扩展和管理容器化的应用程序,它提供了一种容器编排和管理的方式,可以帮助开发人员更轻松的管理容器化的应用程序,并且提供了一种跨多个主机的自动化部署和管理机制作用:    用于自动部署、扩展和管理“容器化(containerized)应用程序”的开源系统。可以理解成K8S是负责自动化运维管理多个容器化程序(比如Docker)的集群,是一个生态极其丰富的容器编排框架工具。​官网:https://kubernetes.iogithub:https://github.com/kubernetes/kubernets​为什么要