rehl7.3部署K8s集群
前言
官方中文文档: 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集群相关推荐
- 【02】Kubernets:使用 kubeadm 部署 K8S 集群
写在前面的话 通过上一节,知道了 K8S 有 Master / Node 组成,但是具体怎么个组成法,就是这一节具体谈的内容.概念性的东西我们会尽量以实验的形式将其复现. 部署 K8S 集群 互联网常 ...
- kubeadm部署K8S集群并使用containerd做容器运行时
kubeadm部署K8S集群并使用containerd做容器运行时(内容全部实战验证有任何问题欢迎留言咨询讨论) 前言 去年12月份,当Kubernetes社区宣布1.20版本之后会逐步弃用docke ...
- kubeadm部署k8s集群
1.准备环境 虚拟机操作系统: Centos7 角色 IP Master 192.168.150.140 Node1 192.168.150. ...
- 如何通过rancher部署k8s集群
目录 1 安装前准备 2 安装rancher 3 配置Rancher 4 创建k8s集群 最近的工作中需要使用到K8S,而面临的第一个问题就是如何部署一个K8S集群环境.现有多种部署方式,如:kube ...
- linux上部署K8S集群
部署K8S集群 服务器硬件要求:三台虚拟机服务器,操作系统都为centos: 硬盘最低配置:内存2GB,CPU2核,硬盘30GB. 准备环境 master 192.168.200.110 node ...
- 阿里云部署k8s集群
阿里云部署k8s集群 前言 1.k8集群架构 Kubernetes Cluster = N Master Node + N Worker Node:N主节点+N工作节点: N>=1 2.机器 ...
- 二进制部署K8S集群
初始化设置服务器 关闭防火墙 ]# systemctl stop firewalld ]# systemctl disable firewalld 关闭 selinux ]# sed -i 's/en ...
- kubekey部署k8s集群
基本介绍:KubeKey 是 KubeSphere 社区开源的一款高效集群部署工具,运行时默认使用 Docker , 也可对接 Containerd CRI-O iSula 等 CRI 运行时,且 E ...
- centos7.8 安装部署 k8s 集群
centos7.8 安装部署 k8s 集群 文章目录 centos7.8 安装部署 k8s 集群 环境说明 Docker 安装 k8s 安装准备工作 Master 节点安装 k8s 版本查看 安装 k ...
最新文章
- 用Python爬取WordPress官网所有插件
- 深度学习——02、深度学习入门 1-7
- tomcat Server.xml Context配置
- shell 判断字符串相等_编程小短文:Bash子字符串还在用==?试试=~性能瞬间飙升100倍...
- P1068 分数线划定 洛谷 (C++)(结构体排序)
- 你真的搞懂ES6模块的导入导出规则了吗
- 中国加热织物市场趋势报告、技术动态创新及市场预测
- pixi 小游戏_手把手教你制作一款小游戏【超好玩!】
- java swing结束事件_java swing清除事件队列
- 西门子PLC S7-1200程序实例 西门子1200与安川机器人TCP/IP通讯,包含机器人GSD文件
- golang profiling
- 纪录大华的智能回调需要用到的事件列表
- Linux常用浏览器
- 2022 云栖大会 | 一体化大数据智能峰会预约开启
- Android电子书阅读器的设计与实现
- php360随机壁纸图片接口,PHP超简单的随机图片头像API接口网站搭建教程
- ASp.net动态加载js和css文件
- java国外著名网站
- C++软件异常的常见原因分析与总结(实战经验分享)
- 上位机与下位机是什么?
热门文章
- R语言scan函数读取文件为向量或者列表格式实战
- 如何理解PacBio的准确度?
- 生信基础巩固Linux篇
- 大学计算机数学基础2,大学计算机基础(第2版)
- 小米mix2s html,【小米MIX2s评测】性能·骁龙845确实很强 但小米没压住_小米 MIX 2s(6GB RAM/全网通)_手机评测-中关村在线...
- 高并发编程_高并发编程系列:7大并发容器详解(附面试题和企业编程指南)...
- tf.keras.losses.KLDivergence KL散度 损失函数 示例
- 【Java】Java连接Mysql数据库的demo示例
- 人群密度估计--Leveraging Unlabeled Data for Crowd Counting by Learning to Rank
- 人脸检测对齐--Joint Face Detection and Alignment using Multi-task Cascaded Convolutional Networks