k8s

kubeadm快速安装k8s集群(1master+2node)

纵然是瞬间 提交于 2020-03-23 18:33:10
```本文档参考阿良老师的文档, 结合自己的问题,做了部分修改,如有侵权,联系删除! kubeadm是官方推出的安装k8s集群方式中的一种,另外一种是二进制安装 主要通过master端的kubeadm init 和node端的kubeadm join 一、 环境准备 部署K8s集群机器需要满足以下几个条件: 使用VMware创建三台主机,要求如下: 1.系统CentOS7.5 2.停掉swap,关闭防火墙和selinux 3.机器之间相互可以ping通,且可以连接外部网络 4.硬件预计需要内存2G加硬盘20G加CPU 2核 关闭防火墙: $ systemctl stop firewalld $ systemctl disable firewalld 关闭selinux: $ sed -i 's/enforcing/disabled/' /etc/selinux/config $ setenforce 0 $ getenforce 关闭swap: $ swapoff -a #临时 $ vim /etc/fstab #永久 添加主机名与IP对应关系(记得设置主机名): $ cat /etc/hosts 192.168.31.62 master 192.168.31.64 node1 192.168.31.66 node2 $ hostnamectl set-hostname -

k8s高可用环境部署系统准备

巧了我就是萌 提交于 2020-03-23 18:24:04
说明 这里使用 VMware 创建三台master节点机器,一台node节点。虚拟机的创建过程由于不是本节的重点,所以不再叙述。三台机器具体信息如下: master节点1: 192.168.246.193 主机名:master01 master节点2: 192.168.246.194 主机名:master02 master节点3: 192.168.246.195 主机名:master03 Node节点1: 192.168.246.196 主机名:node01 固定虚拟机IP并能正常访问网络 四台机器均是如下操作步骤: 主机IP分别是:192.168.246.193/194/195/196 #虚拟机网络选择 网络适配器 --> NAT #更改虚拟机网络配置文件 cd /etc/sysconfig/network-scripts cat > ifcfg-ens33 << EOF TYPE=Ethernet PROXY_METHOD=none BROWSER_ONLY=no BOOTPROTO=static DEFROUTE=yes IPV4_FAILURE_FATAL=no IPV6INIT=yes IPV6_AUTOCONF=yes IPV6_DEFROUTE=yes IPV6_FAILURE_FATAL=no IPV6_ADDR_GEN_MODE=stable-privacy

第14 章 : Kubernetes Service讲解

只谈情不闲聊 提交于 2020-03-23 04:18:58
Kubernetes Service 本文将主要分享以下四方面的内容: 为什么需要 K8s service; K8s service 用例解读; K8s service 操作演示; K8s service 架构设计。 需求来源 为什么需要服务发现 在 K8s 集群里面会通过 pod 去部署应用,与传统的应用部署不同,传统应用部署在给定的机器上面去部署,我们知道怎么去调用别的机器的 IP 地址。但是在 K8s 集群里面应用是通过 pod 去部署的, 而 pod 生命周期是短暂的。在 pod 的生命周期过程中,比如它创建或销毁,它的 IP 地址都会发生变化,这样就不能使用传统的部署方式,不能指定 IP 去访问指定的应用。 另外在 K8s 的应用部署里,之前虽然学习了 deployment 的应用部署模式,但还是需要创建一个 pod 组,然后这些 pod 组需要提供一个统一的访问入口,以及怎么去控制流量负载均衡到这个组里面。比如说测试环境、预发环境和线上环境,其实在部署的过程中需要保持同样的一个部署模板以及访问方式。因为这样就可以用同一套应用的模板在不同的环境中直接发布。 Service:Kubernetes 中的服务返现与负载均衡 最后应用服务需要暴露到外部去访问,需要提供给外部的用户去调用的。我们上节了解到 pod 的网络跟机器不是同一个段的网络,那怎么让 pod

Centos7 一键安装K8s master节点

不羁岁月 提交于 2020-03-23 00:46:48
#!/bin/bash #hostnamectl set-hostname k8s #echo "192.168.5.130 k8s" >> /etc/hosts #echo "192.168.5.131 k8s1" >> /etc/hosts #echo "192.168.5.132 k8s2" >> /etc/hosts #systemctl stop firewalld && systemctl disable firewalld #sed -i "s/SELINUX= enforcing/SELINUX=disabled/g" /etc/sysconfig/selinux #swapoff -a #SwapLineNumber= sed -n '/swap/=' /etc/fstab #sed -i $SwapLineNumber's/^/#&/' /etc/fstab #echo net.bridge.bridge-nf-call-ip6tables = 1 >> /etc/sysctl.d/k8s.conf #echo net.bridge.bridge-nf-call-iptables = 1 >> /etc/sysctl.d/k8s.conf #echo net.ipv4.ip_forward = 1 >> /etc/sysctl.d/k8s.conf

【独家】K8S漏洞报告 | CVE-2019-1002101解读

折月煮酒 提交于 2020-03-23 00:46:07
kubectl cp漏洞CVE-2019-1002101分析 Kube-proxy IPVS添加flag ipvs-strict-arp 近期bug fix数据分析 ——本期更新内容 kubectl cp漏洞 近期kubernetes的kubectl cp命令发现安全问题(CVE-2019-1002101),该问题严重程度比较高,建议将kubectl升级到Kubernetes 1.11.9,1.12.7,1.13.5或1.14.0版本以解决此问题。 kubectl cp命令允许用户在容器和主机之间复制文件,其基本原理是: 在源地址将文件打包。 打包输出内容作为stream流通过网络传递给目标地址。 传递路径包括:apiserver、kubelet、runtime stream流在目的地址作为tar的输入,解压。 具体执行过程可以参考kubernetes/pkg/kubectl/cmd/cp.go文件中的copyToPod和copyFromPod两个函数。 在这个过程中,如果容器中的tar二进制文件是恶意的,它可以运行任何代码并输出意外的恶意结果。当调用kubectl cp时,***者可以使用它将文件写入用户计算机上的任何路径,仅受本地用户的系统权限限制。 目前社区在1.11-1.14版本均修复了该问题,具体修复方式可参考: https://github.com/kubernetes

【独家】K8S漏洞报告 | 近期bug fix解读

∥☆過路亽.° 提交于 2020-03-23 00:20:52
安全漏洞CVE-2019-3874分析 Kubernetes近期重要bug fix分析 Kubernetes v1.13.5 bug fix数据分析 ——本周更新内容 安全漏洞CVE-2019-3874分析 3月21日,Kubernetes社区通过Google Group频道Kubernetes developer/contributor discussion发布了安全漏洞CVE-2019-3874以及解决方法。 这个安全漏洞最早由红帽的工程师Matteo Croce,Natale Vinto和Andrea Spagnolo发现。当Kubernetes中的Pod以Root用户运行时,它可以绕过cgroup内存隔离,通过SCTP网络传输,创建一个潜在的DoS***,此问题本身与Kubernetes无关,但是涉及到Kubernetes调用的内核模块。问题的严重性被定义为中等,社区建议将SCTP内核模块列入黑名单来规避此问题。用户可以通过执行如下命令来测试是否会到此类***。 modprobe sctp; lsmod | grep sctp 用户可以通过执行如下命令来把SCTP列入内核模块的黑名单。 echo "install sctp /bin/true" > /etc/modprobe.d/sctp.conf 如果SCTP模块已经载入内核,则需要重启机器来从内核中卸载SCTP模块

当AI遇上K8S:使用Rancher安装机器学习必备工具JupyterHub

蓝咒 提交于 2020-03-23 00:13:02
Jupyter Notebook是用于科学数据分析的利器,JupyterHub可以在服务器环境下为多个用户托管Jupyter运行环境。本文将详细介绍如何使用Rancher安装JupyterHub来为数据科学和机器学习开发创建可扩展的工作区。 本文来自 Rancher Labs 人工智能(AI)和机器学习(ML)正在成为技术领域的关键差异化因素。从本质上讲,人工智能和机器学习都是计算量巨大的工作负载,它们需要一流的分布式计算环境才能够蓬勃发展。因此,AI和ML为Kubernetes提供了一个完美的用例,他们能够最大化展现Kubernetes可以运行大量工作负载的特点。 什么是JupyterHub? Jupyter Notebook是用于科学数据分析的利器,JupyterHub可以在服务器环境下为多个用户托管Jupyter运行环境。JupyterHub是一个多用户数据探索工具,通常是数据科学和机器学习研究与开发的关键工具。它为工程师、科学家、研究人员和学生提供了云或数据中心的计算能力,同时仍然像本地开发环境一样易于使用。本质上,JupyterHub使用户可以访问计算环境和资源,而不会给他们增加安装和维护任务的负担。用户可以在工作区中使用共享资源,系统管理员会对其进行有效管理。 在AI/ML工作负载中使用Kubernetes Kubernetes非常擅长让我们利用大型分布式计算环境

k8s基础

会有一股神秘感。 提交于 2020-03-22 18:13:01
1.kubernetes架构与组件 Kubernetes集群是由一组节点,也就是node节点组成,可以是物理服务器,也可以是虚拟机。 每个node节点上都安装了kubelet和kube-proxy这两个node组件。 而安装了master组件的节点称为master node。 node组件通过kubelet组件与master组件进行交互,维护着该node上的pod的生命周期。 一个典型的master集群是由一个master node和若干个承载工作负荷的node组成。 kubernetes通过etcd存储着集群中的所有对象和状态。 kubernetes还提供了集群维护的超级命令行工具kubectl。 (1)master master组件主要包括:Apiserver、Scheduler、Controller Manager和etcd。 Api Server是master组件的中枢,其余的master组件都是通过调用Api的接口,实现各自的功能。 API server是整个集群控制的前端,是唯一可以修改集群状态和数据库的组件。 master组件是Kubernetes集群的大脑。 所有集群的控制命令都传递给Master组件并在其上执行。 每个Kubernetes集群至少有一套Master组件。来负责控制和管理整个集群,才能保证集群的正常运转。 它协调集群中的所有活动,包括集群中应用的调度

K8S部署企业应用系统学习(一)

為{幸葍}努か 提交于 2020-03-22 15:58:54
一、K8S部署多master的集群 前一个月用K8S部署了一个多master的集群,其中的困难,比想象中多太多。大概花了一个月的时间,从0开始,到集群搭建完成。 后面应该会写一个帖子,这里就不做介绍了。 二、学习的一些经验总结。 4.22 搭建多master结点的集群总结: 1.kubectl get pods -n kube-system -o wide 可以详细查看每一个pod结点的运行情况。 来源: https://www.cnblogs.com/maowuyu-xb/p/12546150.html

K8s在LinuxONE上搭建(一)

女生的网名这么多〃 提交于 2020-03-21 22:11:17
一、介绍 Kubernetes 是当先炙手可热的技术,它已然成为可开源界的PASS管理平台的标准,当下文章对大多数是对X86平台搭建Kubernetes平台,下面笔者进行在LinuxONE上搭建开源的Kubernetes平台。 搭建K8S 平台主流的有两种方法, 第一种是基于二进制的搭建,通过一步一步的搭建可以加深对K8S各个服务的理解。 官方推荐的自动化部署工具 kubeadm 本次使用官方推荐的Kubeadm 的搭建方法, kubedm 把K8S 自身的服务都被K8S自身的pod,除此之外事先的基础服务是用system服务的方式运行。 master节点安装组件: docker、kubelet、kubeadm 基于本地的system服务运行 kube-proxy 是 动态的可被k8s 管理的pod api-server、kube-controller、etcd、 是托guan在pod node节点组件 docker、kubelet 基于本地的system服务运行 kube-proxy 是 动态的可被k8s 管理的pod flannel 是 动态的可被k8s 管理的pod 二、安装 1. 环境 系统版本 IP地址 主机名 ubuntu1~18.04.1 172.16.35.140 master ubuntu1~18.04.1 woker-1 2.安装docker 安装基础的包