Kube

centos7部署kubernetes详细部署步骤

别来无恙 提交于 2020-12-16 04:25:10
一、前期准备 1、首先准备至少两台虚拟机,可以使用VMware Workstation Pro部署两台虚拟机。我这里准备两台如下: 192.168.78.128 k8s-master 192.168.78.129 k8s-node 其中一台作为集群管理主机,一台为node主机。 2、设置主机的名称,方便部署时区别节点。 hostnamectl set-hostname k8s-master hostnamectl set-hostname k8s-node1 3、master主机和node主机需要关闭的内容(必须执行的操作,在两台主机上执行如下命令即可) systemctl stop firewalld 关闭防火墙 setenforce 0 关闭selinux ntpdate ntp1.aliyun.com 配置时间同步 swapoff -a 临时关闭swap 4、在vim /etc/hosts下面配置 master的配置: 192.168.78.128 k8s-master 192.168.78.128 etcd 192.168.78.128 registry 192.168.78.129 k8s-node1 node配置: 192.168.78.128 k8s-master 192.168.78.128 etcd 192.168.78.129 registry 192.168

K8S从入门到放弃系列-(9)kubernetes集群之kubelet部署

依然范特西╮ 提交于 2020-12-15 10:13:45
摘要: Kubelet组件运行在Node节点上,维持运行中的Pods以及提供kuberntes运行时环境,主要完成以下使命:   1.监视分配给该Node节点的pods   2.挂载pod所需要的volumes   3.下载pod的secret   4.通过docker/rkt来运行pod中的容器   5.周期的执行pod中为容器定义的liveness探针   6.上报pod的状态给系统的其他组件   7.上报Node的状态 1、以下操作属于node节点上组件的部署,在master节点上只是进行文件配置,然后发布至各node节点。 2、若是需要master也作为node节点加入集群,也需要在master节点部署docker、kubelet、kube-proxy。 1)创建角色绑定 kubelet 启动时向 kube-apiserver 发送 TLS bootstrapping 请求,需要先将 bootstrap token 文件中的 kubelet-bootstrap 用户赋予 system:node-bootstrapper cluster 角色(role), 然后 kubelet 才能有权限创建认证请求(certificate signing requests): [root@k8s-master01 ~]# kubectl create clusterrolebinding

Kubernetes 集群搭建(下)

坚强是说给别人听的谎言 提交于 2020-12-15 01:11:12
早安~~不知道昨天的文章各位有没有去尝试操作一下呢?没有的话建议再去看一下昨天的文章,这样可以更好的理解今天的文章! 今天的信息量比较大,大家可能会比较懵,建议多看几遍呀~ 下面开始今天的内容~ 安装 yum安装需要的组件,我这里指定了具体的版本,我用的版本比较老,不过如果你是第一次用,问题不是很大,如果是大佬的话就不要喷我了~~~ yum -y install kubeadm-1 .11 .1 yum -y install kubectl-1 .11 .1 yum -y install kubelet-1 .11 .1 yum -y install kubernetes-cni-0 .6 .0 yum -y install docker-ce-17 .03 .0 .ce-1 .el7 . centos 设置docker启动 systemctl enable docker systemctl start docker systemctl enable kubelet.service systemctl start kubelet 这里就是比较艰难的部分了,网上的处理办法大同小异在这里给大家写一下我用的。 kubernetes是Google的,他的镜像托管在Google云上,国内下载比较坎坷,到这个地址去下载https://github.com/anjia0532/gcr.io

Kubernetes(十二)部署K8s集群网络(flannel)

自古美人都是妖i 提交于 2020-12-07 10:12:04
cni是k8s的一个接口,如果需要对接k8s就需要遵循cni接口标准,部署cni主要是为了接通第三方网络; 关于第三方网络插件实现 https://kubernetes.io/docs/setup/production-environment/tools/kubeadm/create-cluster-kubeadm/ 关于cni和flanel安装规划 cni安装到每台node节点 flannel安装到master节点 node节点安装cni cni二进制包下载地址: https://github.com/containernetworking/plugins/releases 一、下载安装包cni wget https://github.com/containernetworking/plugins/releases/download/v0.8.5/cni-plugins-linux-amd64-v0.8.5.tgz 二、解压安装包cni mkdir -p /opt/cni/bin #工作目录 mkdir -p /etc/cni/net.d #配置文件 tar -zxvf cni-plugins-linux-amd64-v0.8.5.tgz -C /opt/cni/bin master节点安装flannel 三、我们安装flannel flannel安装教程 https:/

K8S Dashborad登陆认证文档

纵然是瞬间 提交于 2020-12-07 02:00:01
K8S Dashboard是官方的一个基于WEB的用户界面,专门用来管理K8S集群,并可展示集群的状态。因为我们使用kubeadm搭建的集群会默认开启RABC(角色访问控制机制),所以我们必须要进行额外的设置。关于RABC的概念,网上资料很多,大家务必提前了解。这里简要介绍一下几个重要概念: RBAC K8S 1.6引进,是让用户能够访问 k8S API 资源的授权方式【不授权就没有资格访问K8S的资源】 用户 K8S有两种用户:User和Service Account。其中,User给人用,Service Account给进程用,让进程有相关权限。如Dashboard就是一个进程,我们就可以创建一个Service Account给它 角色 Role是一系列权限的集合,例如一个Role可包含读取和列出 Pod的权限【 ClusterRole 和 Role 类似,其权限范围是整个集群】 角色绑定 RoleBinding把角色映射到用户,从而让这些用户拥有该角色的权限【ClusterRoleBinding 和RoleBinding 类似,可让用户拥有 ClusterRole 的权限】 Secret Secret是一个包含少量敏感信息如密码,令牌,或秘钥的对象。把这些信息保存在 Secret对象中,可以在这些信息被使用时加以控制,并可以降低信息泄露的风险 K8S

K8s学习笔记

不羁的心 提交于 2020-12-05 10:56:48
1、管理节点配置 增加主机解析 vi /etc/hosts 192.168.2.121 master 192.168.2.122 node1 192.168.2.123 node2 停止防火墙 systemctl stop firewalld systemctl disable firewalld 配置yum源 cd /etc/yum.repos.d/ wget https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo vi /etc/yum.repos.d/kubernetes.repo [Kubernetes] name=Kubernetes Repo baseurl=https://mirrors.aliyun.com/kubernetes/yum/repos/kubernetes-el7-x86_64/ gpgcheck=0 gpgkey=https://mirrors.aliyun.com/kubernetes/yum/doc/yum-key.gpg enabled=1 wget https://mirrors.aliyun.com/kubernetes/yum/doc/yum-key.gpg rpm --import yum-key.gpg 使用阿里云静像加速器 tee /etc/docker

Kubernetes高可用集群(二进制,v1.18)

梦想的初衷 提交于 2020-12-05 10:11:38
1.2 安装要求在开始之前,部署Kubernetes集群机器需要满足以下几个条件: 一台或多台机器,操作系统 CentOS7.x-86_x64 硬件配置:2GB或更多RAM,2个CPU或更多CPU,硬盘30GB或更多 可以访问外网,需要拉取镜像,如果服务器不能上网,需要提前下载镜像并导入节点 禁止swap分区 单Master架构图: 单Master服务器规划: k8s-master 10.168.104.206 kube-apiserver,kube-controller-manager,kube-scheduler,etcd k8s-node1 10.168.104.205 kubelet,kube-proxy,docker etcd k8s-node2 10.168.104.204 kubelet,kube-proxy,docker,etcd 1.4 操作系统初始化配置 #关闭防火墙 systemctl stop firewalld systemctl disable firewalld #关闭selinux sed -i 's/enforcing/disabled/' /etc/selinux/config # 永久 setenforce 0 # 临时 #关闭swap swapoff -a # 临时 sed -ri 's/. swap. /#&/' /etc/fstab #

Linux安装kubernetes

大兔子大兔子 提交于 2020-12-05 09:25:44
使用KUBEADM安装KUBERNETES V1.14.0 一、环境准备 操作系统:Centos 7.5 一台或多台运⾏行行着下列列系统的机器器: ​ Ubuntu 16.04+ ​ Debian 9 ​ CentOS 7 ​ RHEL 7 ​ Fedora 25/26 (尽⼒服务) ​ HypriotOS v1.0.1+ ​ Container Linux (针对1800.6.0 版本测试) 每台机器器 2 GB 或更多的 RAM (如果少于这个数字将会影响您应用的运⾏内存)2 CPU 核心或更多 ​ 集群中的所有机器的⽹络彼此均能相互连接(公⽹和内⽹都可以) 节点之中不可以有重复的主机名,MAC 地址,product_uuid。更多详细信息请参见这里 。 ​ 开启主机上的一些特定端口. 更多详细信息请参见这里。 ​ 禁用 Swap 交换分区 。为了了保证 kubelet 正确运⾏行行,必须 禁用交换分区。 二、安装步骤 1. 定义hostname hostname k8s-master 2. 编辑 /etc/hosts vi /etc/ hosts #当然我们在这⾥根据实际情况指定⾃⼰的ip地址即可 192.168 . 194.135 k8s-master 3.禁用交换分区等操作 # 将 SELinux 设置为 permissive 模式(将其禁⽤用) setenforce 0

进击的Kubernetes调度系统(二):支持批任务的Coscheduling/Gang scheduling

巧了我就是萌 提交于 2020-12-04 01:51:08
前言 首先我们来了解一下什么是Coscheduling和Gang scheduling。Wikipedia对 Coscheduling 的定义是“在并发系统中将多个相关联的进程调度到不同处理器上同时运行的策略”。在Coscheduling的场景中,最主要的原则是保证所有相关联的进程能够同时启动。防止部分进程的异常,导致整个关联进程组的阻塞。这种导致阻塞的部分异常进程,称之为“碎片(fragement)”。 在Coscheduling的具体实现过程中,根据是否允许“碎片”存在,可以细分为Explicit Coscheduling,Local Coscheduling和Implicit Coscheduling。 其中Explicit Coscheduling就是大家常听到的 Gang Scheduling 。Gang Scheduling要求完全不允许有“碎片”存在, 也就是“All or Nothing”。 我们将上述定义的概念对应到Kubernetes中,就可以理解Kubernetes调度系统支持批任务Coscheduling的含义了。 一个批任务(关联进程组)包括了N个Pod(进程),Kubernetes调度器负责将这N个Pod调度到M个节点(处理器)上同时运行。如果这个批任务需要部分Pod同时启动即可运行,我们称需启动Pod的最小数量为min-available。特别地

kubernetes调度之pod优先级和资源抢占

情到浓时终转凉″ 提交于 2020-12-04 01:42:08
系列目录 Pod可以拥有优先级.优先意味着相对于其它pod某个pod更为重要.如果重要的pod不能被调度,则kubernetes调度器会优先于(驱离)低优先级的pod来让处于pending状态的高优先级pod被调度. kubernetes 1.9以后,优先级会影响pod的调度顺序和资源耗尽时pod的驱离顺序 警告:在一个不是所有用户都被信任的集群里,可能有恶意用户创建最高可能优先级的pod,导致其它pod被驱离或者无法调度.为了解决这个问题,需要增大资源配额来支持优先pod.集群管理员可以为特定用户创建特定优先级级别,防止他们创建高优先级的pod.这项功能在1.12版本里为beta状态. 怎样使用优先级和抢占 在1.11或以后的版本里,按下面指示来操作: 创建一个或者多个 PriorityClasses 创建一个pod,并把 priorityClassName 设置为以上添加的 priorityClassName 中的一个.当然你不必直接创建pod,你可以把 priorityClassName 添加到集合对象(比如deployment)的template里. 如果你仅想尝试这项功能并且然后把它禁用,你必须把 PodPriority 设置为false,然后重启apiserver和调度器.被禁用以后,已经存在的pod仍然保留有它们的优先级字段,但是抢占不会再生效,并且优先字段被忽略