什么是Kubernetes?

Kubernetes(k8s)是自动化容器操作的开源平台,这些操作包括部署,调度和节点集群间扩展。如果你曾经用过Docker容器技术部署容器,那么可以将Docker看成Kubernetes内部使用的低级别组件。Kubernetes不仅仅支持Docker,还支持Rocket,这是另一种容器技术。使用Kubernetes可以:

  • 自动化容器的部署和复制
  • 随时扩展或收缩容器规模
  • 将容器组织成组,并且提供容器间的负载均衡
  • 很容易地升级应用程序容器的新版本
  • 提供容器弹性

部署

第一步:环境说明

192.168.1.13    master
192.168.1.14 node-01
192.168.1.15 node-02

第二步:关闭防火墙等(all)

# 1.关闭防火墙
systemctl stop firewalld && systemctl disable firewalld​ # 2.关闭selinux
setenforce 0
vim /etc/selinux/config
SELINUX=enforcing改为SELINUX=disabled,保存后退出 # 3.关闭交换分区
swapoff -a
sed -i 's/.*swap.*/#&/' /etc/fstab # 4.iptables设置
iptables -P FORWARD ACCEPT

第三步:安装docker(all)

# 1.安装
yum install docker -y # 2.启动和默认启动
systemctl start docker && systemctl enable docker # 3.配置
cat > /etc/docker/daemon.json << EOF
{
"registry-mirrors": ["https://阿里个人加速网址.mirror.aliyuncs.com"],
"exec-opts":["native.cgroupdriver=systemd"],
"graph": "/new-path/docker" # 该路径必须存在
}
EOF

第四步:启动docker时配置iptables(all)

vim /etc/systemd/system/docker.service
[Service]下面添加
ExecStartPost=/sbin/iptables -I FORWARD -s 0.0.0.0/0 -j ACCEPT

第五步:设置host(all)

# 在不同的服务器上运行
hostnamectl set-hostname master
hostnamectl set-hostname node-01
hostnamectl set-hostname node-02 # 所有的服务器都运行
cat >> /etc/hosts << EOF
192.168.1.13 master
192.168.1.14 node-01
192.168.1.15 node-02
EOF

第六步:设置yum源(all)

cat > /etc/yum.repos.d/docker.repo <<EOF
[docker-repo]
name=Docker Repository
baseurl=http://mirrors.aliyun.com/docker-engine/yum/repo/main/centos/7
enabled=1
gpgcheck=0
EOF cat > /etc/sysctl.d/k8s.conf << EOF
net.bridge.bridge-nf-call-ip6tables = 1
net.bridge.bridge-nf-call-iptables = 1
net.ipv4.ip_forward = 1
EOF cat > /etc/yum.repos.d/kubernetes.repo << EOF
[kubernetes]
name=Kubernetes
baseurl=http://mirrors.aliyun.com/kubernetes/yum/repos/kubernetes-el7-x86_64
enabled=1
gpgcheck=0
repo_gpgcheck=0
gpgkey=http://mirrors.aliyun.com/kubernetes/yum/doc/yum-key.gpg
http://mirrors.aliyun.com/kubernetes/yum/doc/rpm-package-key.gpg
EOF

第七步:安装kubelet kubeadm kubectl(all)

# 1.安装
yum install -y kubelet kubeadm kubectl docker # 2.启动
systemctl enable kubelet && systemctl start kubelet

第八步:初始化master节点(master)

kubeadm init --image-repository=registry.aliyuncs.com/google_containers --apiserver-advertise-address 192.168.1.13 --pod-network-cidr=10.244.0.0/16 --kubernetes-version=v1.18.0

#--image-repository:下载镜像的地址
#--apiserver-advertise-address:apiserver的地址,一般是本机IP
#--pod-network-cidr:容器间通信的虚拟IP网段
#--kubernetes-version:kubernetes版本

第九步:安装flannel网络(all)

# 1.添加IP和hostname的对应关系
cat >> /etc/hosts << EOF
151.101.76.133 raw.githubusercontent.com
EOF # 2.下载并启动flannel
kubectl create -f https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.yml

第十步:添加node节点

# 1.查看jion命令
kubeadm token create --print-join-command # 2.将查询的jion命令直接在node节点运行即可

第十一步:检查集群是否安装成功

# 使用nginx进行测试
[root@master-01 nginx]# cat nginx.yaml
apiVersion: apps/v1
kind: Deployment
metadata:
name: nginx-deployment
labels:
app: nginx
spec:
replicas: 2
selector:
matchLabels:
app: nginx
template:
metadata:
labels:
app: nginx
spec:
containers:
- name: nginx
image: nginx:latest
ports:
- containerPort: 80
---
apiVersion: v1
kind: Service
metadata:
name: nginx-service
labels:
app: nginx
spec:
ports:
- port: 88
targetPort: 80
selector:
app: nginx
type: NodePort

查看Pod和Service是否成功运行:

在浏览器中访问192.168.1.13:32325,看见如下界面,表示集群搭建成功:

       

搭建kubernetes集群的更多相关文章

  1. kubeadm搭建kubernetes集群之三:加入node节点

    在上一章<kubeadm搭建kubernetes集群之二:创建master节点>的实战中,我们把kubernetes的master节点搭建好了,本章我们将加入node节点,使得整个环境可以 ...

  2. kubeadm搭建kubernetes集群之二:创建master节点

    在上一章kubeadm搭建kubernetes集群之一:构建标准化镜像中我们用VMware安装了一个CentOS7虚拟机,并且打算用这个虚拟机的镜像文件作为后续整个kubernetes的标准化镜像,现 ...

  3. kubeadm 搭建kubernetes集群环境

    需求 kubeadm 搭建kubernetes集群环境 准备条件 三台VPS(本文使用阿里云香港 - centos7.7) 一台能SSH连接到VPS的本地电脑 (推荐连接工具xshell) 安装步骤 ...

  4. kubeadm搭建kubernetes集群之一:构建标准化镜像

    使用docker可以批量管理多个容器,但都是在同一台电脑内进行的,这在实际生产环境中是不够用的,如何突破单机的限制?让多个电脑上的容器可以像单机上的docker-compose.yml管理的那样方便呢 ...

  5. 二进制搭建Kubernetes集群(最新v1.16.0版本)

    目录 1.生产环境k8s平台架构 2.官方提供三种部署方式 3.服务器规划 4.系统初始化 5.Etcd集群部署 5.1.安装cfssl工具 5.2.生成etcd证书 5.2.1 创建用来生成 CA ...

  6. 【Kubernetes学习笔记】-kubeadm 手动搭建kubernetes 集群

    目录 K8S 组件构成 环境准备 (以ubuntu系统为例) 1. kubernetes集群机器 2. 安装 docker. kubeadm.kubelet.kubectl 2.1 在每台机器上安装 ...

  7. 手把手从0到1:搭建Kubernetes集群

    搭建 k8s 集群网上很多教程,如果是手工部署或者实验环境可以直接使用 MiniKube 或者 Kind,来在本地启动简单的 Kubernetes 集群进行后面的学习即可.如果是使用 MiniKube ...

  8. 使用Kubeadm(1.13+)快速搭建Kubernetes集群

    Kubeadm是管理集群生命周期的重要工具,从创建到配置再到升级,Kubeadm处理现有硬件上的生产集群的引导,并以最佳实践方式配置核心Kubernetes组件,以便为新节点提供安全而简单的连接流程并 ...

  9. 通过Kubeadm搭建Kubernetes集群

    历经断断续续学习的两天,终于完成了一个简单k8s集群. 参考 https://www.cnblogs.com/edisonchou/p/aspnet_core_on_k8s_deepstudy_par ...

  10. centos7使用kubeadm搭建kubernetes集群

    一.本地实验环境准备 服务器虚拟机准备 IP CPU 内存 hostname 192.168.222.129 >=2c >=2G master 192.168.222.130 >=2 ...

随机推荐

  1. JavaScript 集合基本操作

    参考 MDN 集合 Array 1. 2种创建数组的方式 var fruits = [] ; var friuits = new Array(); 2. 遍历 fruits.forEach(funct ...

  2. hello python week one

    python的注释 好的pytho程序员不一定非要追求 代码的简短,代码的可读性也是至关重要的 与用户交互 输入 input 会将输入内容转化为字符串 输出 print 格式化输出 %d %s 占位符 ...

  3. ceph rbd块存储挂载及文件存储建立

    一.rbd块存储挂载 1 创建一个OSD pool # ceph osd pool create rbd1 128 查询存储空间使用 # ceph df GLOBAL: SIZE AVAIL RAW ...

  4. dart快速入门教程 (4)

    4.流程控制 4.1.分支结构 1.if语句 void main() { int score = 80; if (score >= 90) { print('优秀'); } else if (s ...

  5. hive中order by ,sort by ,distribute by, cluster by 的区别(**很详细**)

    hive 查询语法 select [all | distinct] select_ condition, select_ condition from table_name a [join table ...

  6. docker 容器与本机文件的拷贝操作

    [把docker中容器时db002里面的my.cnf文件拷贝到根目录下] docker cp db002:/etc/mysql/my.cnf  ~/root/ [把根目录下my.cnf文件拷贝到doc ...

  7. Dubbo远程调用之公司内部提供的服务

    公司内部提供的服务 一家对外提供服务的公司,例如百度,腾讯,阿里,京东,58 同城等,公司内部有多个事业群,事业部门,每个事业部门内部又有若干个子部门,子部门里面有多个不同的小组负责各自的业务.提供对 ...

  8. Java中保留小数点后几位

    不想多说啥了..ε=(´ο`*)))唉  基础都给忘了..今天比赛 跌入十八层地狱.... 用DecimalFormat对象的format方法进行格式化.. package cn.test; impo ...

  9. node.js/npm升级正确操作(windows和linux均有)

    原文地址:https://www.wjcms.net/archives/nodejsnpm升级正确操作windows和linux均有 今天我们总结一下node.js以及npm升级的正确操作方法. 小编 ...

  10. HotSpot项目结构

    之前已经介绍了在Ubuntu 16.04上编译OpenJDK8的源代码和调试HotSpot源代码.这一章将介绍HotSpot项目的目录结构. HotSpot目录下主要由agent.make.src和t ...