前言

官方中文文档: http://docs.kubernetes.org.cn/

Kubernetes组成

  • Kubernetes节点有运行应用容器必备的服务,而这些都是受Master的控制。每个节点上都要运行Docker。Docker来负责所有具体的映像下载和容器运行。

  • Kubernetes主要由以下几个核心组件组成:

    etcd:保存了整个集群的状态;

    apiserver:提供了资源操作的唯一入口,并提供认证、授权、访问控制、API注册和发现等机制;

    controller manager:负责维护集群的状态,比如故障检测、自动扩展、滚动更新等;

    scheduler:负责资源的调度,按照预定的调度策略将Pod调度到相应的机器上;

    kubelet:负责维护容器的生命周期,同时也负责Volume(CVI)和网络(CNI)的管理;

    Container runtime:负责镜像管理以及Pod和容器的真正运行(CRI);

    kube-proxy:负责为Service提供cluster内部的服务发现和负载均衡;
    除了核心组件,还有一些推荐的Add-ons:

    kube-dns:负责为整个集群提供DNS服务

    Ingress Controller:为服务提供外网入口

    Heapster:提供资源监控

    Dashboard:提供GUI

    Federation:提供跨可用区的集群

    Fluentd-elasticsearch:提供集群日志采集、存储与查询


Kubernetes集群搭建

实验准备:

搭建过程需要连接网络,在物理机上添加火墙策略即可

[root@foundation6 pub]# iptables -t nat -I POSTROUTING -s 172.25.6.0/24 -j MASQUERADE

实验环境:(安装docker并开启)

  • server1:172.25.6.1 (k8s-master)
  • server2: 172.25.6.2 (k8s-node1)

先清理之前的环境:(之前配置过swarm集群,没有做过可以跳过)

[root@server2 ~]# docker swarm leave
Node left the swarm.
[root@server3 ~]# docker swarm leave
Node left the swarm.
[root@server1 ~]# docker swarm leave --force[root@server1 ~]# docker container prune
WARNING! This will remove all stopped containers.
Are you sure you want to continue? [y/N] y
[root@server2 ~]# docker container prune
[root@server3 ~]# docker container prune

1.安装相应软件

[root@docker1 ~]# yum install -y kubeadm-1.12.2-0.x86_64.rpm kubelet-1.12.2-0.x86_64.rpm kubectl-1.12.2-0.x86_64.rpm kubernetes-cni-0.6.0-0.x86_64.rpm cri-tools-1.12.0-0.x86_64.rpm
[root@docker2 ~]# yum install -y kubeadm-1.12.2-0.x86_64.rpm kubelet-1.12.2-0.x86_64.rpm kubectl-1.12.2-0.x86_64.rpm kubernetes-cni-0.6.0-0.x86_64.rpm cri-tools-1.12.0-0.x86_64.rpm

2.关闭系统的交换分区

[root@server1 ~]# swapoff -a
[root@server1 mnt]# vim /etc/fstab
#/dev/mapper/rhel-swap   swap                    swap    defaults        0 0
[root@server1 ~]# systemctl enable kubelet.service



3. 查看 kubeadm 会用到的镜像

[root@server1 ~]# kubeadm config images list


4.导入需要的镜像

[root@server1 ~]# docker load -i kube-apiserver.tar
[root@server1 ~]# docker load -i kube-controller-manager.tar
[root@server1 ~]# docker load -i kube-proxy.tar
[root@server1 ~]# docker load -i pause.tar
[root@server1 ~]# docker load -i etcd.tar
[root@server1 ~]# docker load -i coredns.tar
[root@server1 ~]# docker load -i kube-scheduler.tar
[root@server1 ~]# docker load -i flannel.tar

5.初始化

[root@server1 mnt]# vim kube-flannel.yml
[root@server1 mnt]# kubeadm init --pod-network-cidr=10.244.0.0/16 --apiserver-advertise-address=172.25.6.1

6.创建一个k8s用户,并授权,设置环境变量

[root@server1 mnt]# useradd k8s
[root@server1 mnt]# vim /etc/sudoers
k8s     ALL=(ALL)       NOPASSWD:ALL

[root@server1 mnt]# vim /home/k8s/.bashrc
source <(kubectl completion bash)'
[root@server1 mnt]#  su - k8s
[k8s@server1 ~]$ mkdir -p $HOME/.kube
[k8s@server1 ~]$ sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
[k8s@server1 ~]$ sudo chown $(id -u):$(id -g) $HOME/.kube/config


7.在master部署flannel

[root@server1 mnt]# cp  kube-flannel.yml  /home/k8s
[root@server1 mnt]# su - k8s
[k8s@server1 ~]$ kubectl apply -f kube-flannel.yml
clusterrole.rbac.authorization.k8s.io/flannel created
clusterrolebinding.rbac.authorization.k8s.io/flannel created
serviceaccount/flannel created
configmap/kube-flannel-cfg created
daemonset.extensions/kube-flannel-ds-amd64 created
daemonset.extensions/kube-flannel-ds-arm64 created
daemonset.extensions/kube-flannel-ds-arm created
daemonset.extensions/kube-flannel-ds-ppc64le created
daemonset.extensions/kube-flannel-ds-s390x created[k8s@docker1 ~]$ sudo docker ps   ##查看
CONTAINER ID        IMAGE                  COMMAND                  CREATED             STATUS              PORTS               NAMES
3855924a06d5        95b66263fd52           "/coredns -conf /etc…"   4 seconds ago       Up 3 seconds                            k8s_coredns_coredns-576cbf47c7-8wwwp_kube-system_31591458-a63e-11e9-88de-525400708570_0
f6d69512f3df        95b66263fd52           "/coredns -conf /etc…"   4 seconds ago       Up 3 seconds                            k8s_coredns_coredns-576cbf47c7-7h9rq_kube-system_3155a033-a63e-11e9-88de-525400708570_0
9df67998fadf        k8s.gcr.io/pause:3.1   "/pause"                 5 seconds ago       Up 4 seconds                            k8s_POD_coredns-576cbf47c7-7h9rq_kube-system_3155a033-a63e-11e9-88de-525400708570_0
33525cab6dd8        k8s.gcr.io/pause:3.1   "/pause"                 5 seconds ago       Up 4 seconds                            k8s_POD_coredns-576cbf47c7-8wwwp_kube-system_31591458-a63e-11e9-88de-525400708570_0
9bc2ff835dfa        f0fad859c909           "/opt/bin/flanneld -…"   19 seconds ago      Up 18 seconds                           k8s_kube-flannel_kube-flannel-ds-amd64-w88t2_kube-system_817aa8de-a63e-11e9-88de-525400708570_0
dbad04517c81        k8s.gcr.io/pause:3.1   "/pause"                 21 seconds ago      Up 20 seconds                           k8s_POD_kube-flannel-ds-amd64-w88t2_kube-system_817aa8de-a63e-11e9-88de-525400708570_0
8a79b75c2c2e        96eaf5076bfe           "/usr/local/bin/kube…"   2 minutes ago       Up 2 minutes                            k8s_kube-proxy_kube-proxy-flnbn_kube-system_315101e3-a63e-11e9-88de-525400708570_0
f575d430b0dd        k8s.gcr.io/pause:3.1   "/pause"                 2 minutes ago       Up 2 minutes                            k8s_POD_kube-proxy-flnbn_kube-system_315101e3-a63e-11e9-88de-525400708570_0
c03144237b3a        6e3fa7b29763           "kube-apiserver --au…"   3 minutes ago       Up 3 minutes                            k8s_kube-apiserver_kube-apiserver-server1_kube-system_62738420890bc884285a40b542e8205d_0
689e7509183b        b57e69295df1           "etcd --advertise-cl…"   3 minutes ago       Up 3 minutes                            k8s_etcd_etcd-server1_kube-system_62901bda05af0d9d9b9185862b776eb8_0
0b86fe9150c7        a84dd4efbe5f           "kube-scheduler --ad…"   3 minutes ago       Up 3 minutes                            k8s_kube-scheduler_kube-scheduler-server1_kube-system_ee7b1077c61516320f4273309e9b4690_0
2b0f62510a90        b9a2d5b91fd6           "kube-controller-man…"   3 minutes ago       Up 3 minutes                            k8s_kube-controller-manager_kube-controller-manager-server1_kube-system_1e72bf554fac04b02e53d4fee413b594_0
60946f490de9        k8s.gcr.io/pause:3.1   "/pause"                 3 minutes ago       Up 3 minutes                            k8s_POD_kube-apiserver-server1_kube-system_62738420890bc884285a40b542e8205d_0
284f55082317        k8s.gcr.io/pause:3.1   "/pause"                 3 minutes ago       Up 3 minutes                            k8s_POD_etcd-server1_kube-system_62901bda05af0d9d9b9185862b776eb8_0
8673a163fa52        k8s.gcr.io/pause:3.1   "/pause"                 3 minutes ago       Up 3 minutes                            k8s_POD_kube-scheduler-server1_kube-system_ee7b1077c61516320f4273309e9b4690_0
7f9f4c09ab5d        k8s.gcr.io/pause:3.1   "/pause"                 3 minutes ago       Up 3 minutes                            k8s_POD_kube-controller-manager-server1_kube-system_1e72bf554fac04b02e53d4fee413b594_0

8.部署node节点

[root@server2 ~]# modprobe ip_vs_wrr
[root@server2 ~]# modprobe ip_vs_sh
[root@server2 ~]# kubeadm join 172.25.6.1:6443 --token opei3n.1e2s3y7kzmpftr26 --discovery-token-ca-cert-hash sha256:2f407f7589fd494c2cc2422a70eb74498697ce236b3d769a199cb0801c06f978

9.在master节点查看节点信息,可以看到node1 已经加入集群了

10.在真机添加火墙策略

iptables -t nat -I POSTROUTING -s 172.25.6.0/24 -j MASQUERADE

11.查看所有namespaces的pod


删除状态有问题的,直到所有都是running即可

rehl7.3部署K8s集群相关推荐

  1. 【02】Kubernets:使用 kubeadm 部署 K8S 集群

    写在前面的话 通过上一节,知道了 K8S 有 Master / Node 组成,但是具体怎么个组成法,就是这一节具体谈的内容.概念性的东西我们会尽量以实验的形式将其复现. 部署 K8S 集群 互联网常 ...

  2. kubeadm部署K8S集群并使用containerd做容器运行时

    kubeadm部署K8S集群并使用containerd做容器运行时(内容全部实战验证有任何问题欢迎留言咨询讨论) 前言 去年12月份,当Kubernetes社区宣布1.20版本之后会逐步弃用docke ...

  3. kubeadm部署k8s集群

    1.准备环境 虚拟机操作系统: Centos7 角色                IP Master        192.168.150.140 Node1        192.168.150. ...

  4. 如何通过rancher部署k8s集群

    目录 1 安装前准备 2 安装rancher 3 配置Rancher 4 创建k8s集群 最近的工作中需要使用到K8S,而面临的第一个问题就是如何部署一个K8S集群环境.现有多种部署方式,如:kube ...

  5. linux上部署K8S集群

    部署K8S集群 服务器硬件要求:三台虚拟机服务器,操作系统都为centos: ​ 硬盘最低配置:内存2GB,CPU2核,硬盘30GB. 准备环境 master 192.168.200.110 node ...

  6. 阿里云部署k8s集群

    ​ 阿里云部署k8s集群 前言 1.k8集群架构 Kubernetes Cluster = N Master Node + N Worker Node:N主节点+N工作节点: N>=1 2.机器 ...

  7. 二进制部署K8S集群

    初始化设置服务器 关闭防火墙 ]# systemctl stop firewalld ]# systemctl disable firewalld 关闭 selinux ]# sed -i 's/en ...

  8. kubekey部署k8s集群

    基本介绍:KubeKey 是 KubeSphere 社区开源的一款高效集群部署工具,运行时默认使用 Docker , 也可对接 Containerd CRI-O iSula 等 CRI 运行时,且 E ...

  9. centos7.8 安装部署 k8s 集群

    centos7.8 安装部署 k8s 集群 文章目录 centos7.8 安装部署 k8s 集群 环境说明 Docker 安装 k8s 安装准备工作 Master 节点安装 k8s 版本查看 安装 k ...

最新文章

  1. 用Python爬取WordPress官网所有插件
  2. 深度学习——02、深度学习入门 1-7
  3. tomcat Server.xml Context配置
  4. shell 判断字符串相等_编程小短文:Bash子字符串还在用==?试试=~性能瞬间飙升100倍...
  5. P1068 分数线划定 洛谷 (C++)(结构体排序)
  6. 你真的搞懂ES6模块的导入导出规则了吗
  7. 中国加热织物市场趋势报告、技术动态创新及市场预测
  8. pixi 小游戏_手把手教你制作一款小游戏【超好玩!】
  9. java swing结束事件_java swing清除事件队列
  10. 西门子PLC S7-1200程序实例 西门子1200与安川机器人TCP/IP通讯,包含机器人GSD文件
  11. golang profiling
  12. 纪录大华的智能回调需要用到的事件列表
  13. Linux常用浏览器
  14. 2022 云栖大会 | 一体化大数据智能峰会预约开启
  15. Android电子书阅读器的设计与实现
  16. php360随机壁纸图片接口,PHP超简单的随机图片头像API接口网站搭建教程
  17. ASp.net动态加载js和css文件
  18. java国外著名网站
  19. C++软件异常的常见原因分析与总结(实战经验分享)
  20. 上位机与下位机是什么?

热门文章

  1. R语言scan函数读取文件为向量或者列表格式实战
  2. 如何理解PacBio的准确度?
  3. 生信基础巩固Linux篇
  4. 大学计算机数学基础2,大学计算机基础(第2版)
  5. 小米mix2s html,【小米MIX2s评测】性能·骁龙845确实很强 但小米没压住_小米 MIX 2s(6GB RAM/全网通)_手机评测-中关村在线...
  6. 高并发编程_高并发编程系列:7大并发容器详解(附面试题和企业编程指南)...
  7. tf.keras.losses.KLDivergence KL散度 损失函数 示例
  8. 【Java】Java连接Mysql数据库的demo示例
  9. 人群密度估计--Leveraging Unlabeled Data for Crowd Counting by Learning to Rank
  10. 人脸检测对齐--Joint Face Detection and Alignment using Multi-task Cascaded Convolutional Networks