Kube

ansible一键部署k8s单机环境

▼魔方 西西 提交于 2021-02-07 02:41:56
一、虚拟机准备 干净的Centsot7.4、4G内存、2个CPU 最小化安装,最好带虚拟化 二、执行初始化脚本 注意:脚本中配置静态网卡根据实际网卡名称配置,我用的是ens33 可以用 sed -i "s/ens33/(实际网卡名)/g" 文件路径 进行替换 #!/bin/ bash echo " 正在执行安装k8s环境初始化... " #关闭防火墙 /usr/bin/iptables -F >/dev/ null 2 >& 1 /usr/bin/iptables -X >/dev/ null 2 >& 1 /usr/bin/systemctl disable firewalld.service >/dev/ null 2 >& 1 /usr/bin/systemctl stop firewalld.service >/dev/ null 2 >& 1 echo " 执行关闭防火墙... " #禁用SELINUX /usr/sbin/setenforce 0 /usr/bin/ sed -i ' s/^SELINUX=enforcing$/SELINUX=disabled/ ' /etc/selinux/ config echo " 执行关闭selinux... " #关闭swap /usr/sbin/swapoff - a echo " vm.swappiness = 0 " >

K8S入门知识概念

天大地大妈咪最大 提交于 2021-02-03 06:40:34
1.查看节点的日志信息: journalctl -u kubelet -n 1000 2.查看对应deployment的pod数量,并对其进行设置: kubectl get deployments & kubectl scale deployment nginx-deployment --replicas 3.node节点加入k8s集群: kubeadm join --token 1f627e.a37793601a406d7e 10.0.1.22:6443 --discovery-token-ca-cert-hash sha256:e12a8e1d1be7d308dad31bebdb2684d9d4ba7e5ae290f4fd1f855089b1abe71a 4.K8S给node设置污点策略: kubectl taint nodes node1 key=value:NoSchedule -- 新的不能容忍的 pod不能再调度过来,但是老的运行在node上不受影响 kubectl taint nodes node1 key=value:NoExecute -- 新的不能容忍的 pod不能调度过来,老的pod也会被驱逐 kubectl taint nodes node1 key=value:PreferNoSchedule --pod会尝试将pod分配到该节点 5

Kubernetes安全策略

不问归期 提交于 2021-02-02 16:30:06
Kubernetes CIS Benchmark 见kube-bench 1.安全策略 1.1 使用宿主节点的命名空间 命名空间分 网络命名空间 PID命名空间 IPC命名空间 Pod使用主机的网络命名空间 绑定宿主节点端口 使用宿主节点的PID和IPC命名空间 1.2 节点安全上下文配置 指定容器中运行进程的用户ID 组织容器以Root用户运行 使用特权模式运行容器,对宿主节点内核具有完全的访问权限 通过添加或禁用内核功能,配置细粒度内核访问权限 设置SELinux选项,加强对容器的限制 阻止对容器根文件系统的写入 容器使用不同用户运行时共享存储卷 1.3 集群级别PodSecurityPolicy 是否允许Pod使用宿主节点的PID、IPC、网络命名空间 Pod允许绑定的宿主节点端口 容器运行时允许使用的用户ID runAsUser\fsGroup\supplementalGroup 是否允许拥有特权模式容器的pod 允许添加那些内核功能,默认添加那些内核功能,总是禁用那些内核功能 允许容器使用那些SELinux选项 容器是否允许使用可写的根文件系统 允许容器在哪些文件系统组下运行 允许Pod使用哪些类型的存储卷 对不同用户与组分配不同的PodSecurityPolicy 1.4 隔离Pod的网络 对一个命名空间启用网络隔离 同一命名空间内限制部分Pod访问一个服务端Pod

K8s的工作原理

一世执手 提交于 2021-02-02 15:45:34
K8s概述 我清晰地记得曾经读到过的一篇博文,上面是这样写的, “云端教父AWS云端架构策略副总裁Adrian Cockcroft曾指出,两者虽然都是运用容器技术,但最大的差异是,Docker是要解决应用程序开发(Developing)问题,而Kubernetes是要解决更上层的应用程序运维问题(Operation)。开发问题是早期的痛点,但随着企业越来越依赖容器技术,内部应用越来越多是云原生应用时,运维会是企业IT的新痛点。”大佬的一番话,明确地指出K8S的生存土壤! <!-- more --> 学习一项技术,除了需要明确这项技术的应用场景和发展方向之外,最主要的是理解她的工作原理。 K8s的工作原理 1. 什么是K8s Kubernetes(k8s)是跨主机集群的自动部署、扩展以及运行应用程序容器的开源平台,这些操作包括部署,调度和节点集群间扩展。大二下学期我曽用过Docker容器技术部署容器,经历过compose的变种,对于应用版本之间的兼容性问题深恶痛绝。我们可以将Docker看成Kubernetes内部使用的低级别组件。Kubernetes不仅仅支持Docker,还支持Rocket(没有接触过),这是另一种容器技术。 wikipedia给出的定义:K8s是用于自动部署、扩展和管理容器化(containerized)应用程序的开源系统。Google设计并捐赠给Cloud

k8s apiserver配置

邮差的信 提交于 2021-02-02 15:32:30
接着上面的博客继续写   pwd -> /etc/kubernetes/ssl   cp /etc/etcd/ssl/etcd-1-71.* .   cat apiserver   ### # kubernetes system config # # The following values are used to configure the kube - apiserver # # The address on the local server to listen to. KUBE_API_ADDRESS = " --bind-address=0.0.0.0 --insecure-bind-address=0.0.0.0 " # The port on the local server to listen on. KUBE_API_PORT = " --secure-port=6443 --insecure-port=8080 " # Port minions listen on # KUBELET_PORT = " --kubelet-port=10250 " # Comma separated list of nodes in the etcd cluster KUBE_ETCD_SERVERS = " --etcd-servers=https://192.168.1.71

K8s-apiserver工作原理

梦想与她 提交于 2021-02-02 15:32:10
API Server kube-apiserver 是 Kubernetes 最重要的核心组件之一,主要提供以下的功能 提供集群管理的 REST API 接口,包括认证授权、数据校验以及集群状态变更等 提供其他模块之间的数据交互和通信的枢纽(其他模块通过 API Server 查询或修改数据,只有 API Server 才直接操作 etcd) 工作原理 kube-apiserver 提供了 Kubernetes 的 REST API,实现了认证、授权、准入控制等安全校验功能,同时也负责集群状态的存储操作(通过 etcd)。 API 访问 有多种方式可以访问 Kubernetes 提供的 REST API: 1、kubectl 命令行工具 2、SDK,支持多种语言 Go Python Javascript Java CSharp 3、其他 OpenAPI 支持的语言,可以通过 gen 工具生成相应的 client kubectl kubectl get --raw /api/v1/namespaces kubectl get --raw /apis/metrics.k8s.io/v1beta1/nodes kubectl get --raw /apis/metrics.k8s.io/v1beta1/pods kubectl proxy $ kubectl proxy --port

对kubernetes的认识

萝らか妹 提交于 2021-02-02 11:55:51
一、k8s是什么? Kubernetes是一个轻便的和可扩展的开源平台,用于管理容器化应用和服务,通过Kubernetes能够进行应用的自动化部署和扩缩容。在Kubernetes中,会将组成应用的容器组合成一个逻辑单元以更易管理和发现。 二、基本概念理解: 1、master:管理整个的调度流程。 1.1API Server:是master与node交互的接口,同时此接口也是面向用户的(用户指令)。 1.1.1kubectl:集群管理命令行工具集,kube指令。 1.1.2RestAPI:接口,配置文件。 1.1.3WebUI:可操作的图形化界面。 1.2Controller-Manager:内部管理控制中心,实现集群故障检测和恢复的自动化工作,负责执行各种控制器。 1.3Scheduler:收集和分析当前集群中所有Node节点的资源(内存、CPU)负载情况,然后依此分发新建的Pod到Kubernetes集群中可用的节点。 1.4ETCD:数据库,存数据以及节点的状态 。 备注:Controller-Manager+Scheduler:相互调度,基于ECTD数据库的数据,生成指令,下发给node,再记录到ETCD。 2、node:worker一般会有多个 。 2.1kubelet:master API Server与Nod的通信桥梁,节点上的pod管家。 2.2kube-proxy

K8S搭建及部署Hadoop集群

ⅰ亾dé卋堺 提交于 2021-02-01 19:50:19
K8s服务器配置 服务器节点 cat >> /etc/hosts << EOF 192.168.207.133 k8s-master 192.168.207.134 k8s-node1 192.168.207.135 k8s-node2 EOF kubeadm 初始化 kubeadm init \ --apiserver-advertise-address=192.168.207.133 \ --image-repository registry.aliyuncs.com/google_containers \ --kubernetes-version v1.19.0 \ --service-cidr=10.96.0.0/12 \ --pod-network-cidr=10.244.0.0/16 \ --ignore-preflight-errors=all 搭建Hadoop集群 编写hadoop.yaml apiVersion: v1 kind: ConfigMap metadata: name: kube-hadoop-conf data: HDFS_MASTER_SERVICE: hadoop-hdfs-master HDOOP_YARN_MASTER: hadoop-yarn-master --- apiVersion: v1 kind: Service metadata:

2-k8s笔记-Kubernetes安装配置指南

会有一股神秘感。 提交于 2021-01-31 01:04:21
第2章 Kubernetes安装配置指南 2.1 系统要求 2.2 使用kubeadm工具快速安装Kubernetes集群 2.2.1 安装kubeadm和相关工具 2.2.2 kubeadm config 2.2.3 下载Kubernetes的相关镜像 2.2.4 运行kubeadm init命令安装Master 2.2.5 安装Node,加入集群 2.2.6 安装网络插件 2.2.7 验证Kubernetes集群是否安装完成 2.3 以二进制文件方式安装Kubernetes集群 2.3.1 Master上的etcd、kube-apiserver、kube-controller-manager、kube-scheduler服务 2.3.2 Node上的kubelet、kube-proxy服务 2.4 Kubernetes集群的安全设置 2.4.1 基于CA签名的双向数字证书认证方式 2.4.2 基于HTTP Base或Token的简单认证方式 2.5 Kubernetes集群的网络配置 2.6 内网中的Kubernetes相关配置 2.6.1 Docker Private Registry(私有Docker镜像库) 2.6.2 kubelet配置 2.7 Kubernetes的版本升级 2.7.1 二进制升级 2.7.2 使用kubeadm进行集群升级 2.8

Docker Manager for Kubernetes

旧街凉风 提交于 2021-01-30 14:35:51
一、Kubernetes介绍 Kubernets 是Google开源的容器集群系统,是基于Docker构建一个容器的调度服务,提供资源调度,均衡容灾,服务注册,动态伸缩等功能套件; Kubernets 提供应用部署,维护,扩展机制等功能,利用Kubernetes能方便地管理跨主机运行容器化的应用,其主要功能如下: 使用Docker对应用程序包装(package),实例化(instantiate),运行(run); 将多台Docker主机抽象为一个资源,以集群的方式运行,管理跨机器的容器,包括任务调度,弹性伸缩,滚动升级等功能。 使用编排系统(YAML file)快速构建容器集群,提供负载均衡,解决容器直接关联及通信问题; 解决Docker跨主机容器之间的通信问题。 自动管理和修复容器,简单说,比如创建一个集群,里面有十个容器,如果某个容器异常关闭,那么,会尝试重启或重新分配容器,始终保证会有十个容器在运行,反而杀死多余的。 Kubernetes 的我修复机制使得容器集群总是运行在用户期望的状态当前Kubernetes支持GCE、vShpere、CoreOS、OpenShift。 二、Kubernetes和Mesos的区别 1)Mesos是Apache下的开源分布式资源管理框架,它被称为是分布式系统的内核; Kubernetes是Google开源的容器集群管理系统