Centos 7 部署Kubernetes(K8S)集群
资源链接:https://pan.baidu.com/s/1-PT_QQAf7cTu_znX-S-r9Q 密码:33sr
转发:http://blog.51cto.com/lizhenliang/1983392
一、环境规划
操作系统:CentOS7.3_x64
kubernetes安装目录:/opt/kubernetes
版本说明:
Kubernetes:v1.9
Docker:18.06.0-ce
Etcd:3.2
|
角色 |
IP |
组件 |
|
master |
192.168.1.195 |
etcd kube-apiserver kube-controller-manager kube-scheduler |
|
node01 |
192.168.1.196 |
kube-proxy kubelet docker flannel |
|
node02 |
192.168.1.197 |
kube-proxy kubelet docker flannel |
二、安装Docker
在所有节点执行:
setenforce 0
iptables -F
iptables -t nat -F
iptables -I FORWARD -s 0.0.0.0/0 -d 0.0.0.0/0 -j ACCEPT
iptables -I INPUT -s 192.168.0.0/24 -j ACCEPT
开启路由转发
echo 1 > /proc/sys/net/bridge/bridge-nf-call-iptables
echo 1 > /proc/sys/net/bridge/bridge-nf-call-ip6tables
在Node上安装Docker:
# 安装依赖包
yum install -y yum-utils device-mapper-persistent-data lvm2
# 添加Docker软件包源
yum-config-manager \
--add-repo \
https://download.docker.com/linux/centos/docker-ce.repo
# 更新yum包索引
yum makecache fast
# 安装Docker CE
yum install docker-ce
设置默认从中国镜像仓库中拉取:
# vi /etc/docker/daemon.json
{
"registry-mirrors": [ "https://registry.docker-cn.com"]
}
# systemctl start docker
# systemctl enable docker
测试:
# docker info
三、安装Etcd
2.1 下载二进制包
#yum install etcd –y
# vi /etc/etcd/etcd.conf

# systemctl start etcd
# systemctl enable etcd
四、部署Flannel网络
1)写入分配的子网段到etcd,供flanneld使用
# etcdctl -endpoint="http://192.168.1.195:2379" set /coreos.com/network/config '{ "Network": "172.17.0.0/16", "Backend": {"Type": "vxlan"}}'
2)下载二进制包
# wget https://github.com/coreos/flannel/releases/download/v0.9.1/flannel-v0.9.1-linux-amd64.tar.gz
# tar zxvf flannel-v0.9.1-linux-amd64.tar.gz
# mv flanneld mk-docker-opts.sh /usr/bin
3)配置Flannel
vi /etc/sysconfig/flanneld
FLANNEL_OPTIONS="--etcd-endpoints=http://192.168.1.195:2379 --ip-masq=true"
4)systemd管理Flannel
# vi /usr/lib/systemd/system/flanneld.service
[Unit]
Description=Flanneld overlay address etcd agent
After=network.target
After=network-online.target
Wants=network-online.target
Before=docker.service
[Service]
Type=notify
EnvironmentFile=/etc/sysconfig/flanneld
ExecStart=/usr/bin/flanneld $FLANNEL_OPTIONS
ExecStartPost=/usr/bin/mk-docker-opts.sh -k DOCKER_NETWORK_OPTIONS -d /run/flannel/subnet.env
Restart=on-failure
[Install]
WantedBy=multi-user.target
RequiredBy=docker.service
5)配置Docker启动指定子网段 (区别)
修改成如图:

6)启动
# systemctl daemon-reload
# systemctl start flanneld
# systemctl enable flanneld
# systemctl restart docker
五、获取Kubernetes二进制包
https://github.com/kubernetes/kubernetes/blob/master/CHANGELOG-1.9.md
这个二进制包里面包含了master和node的组件。
六、运行Master组件
解压准备好的包:unzip master.zip
# mkdir -p /opt/kubernetes/{bin,cfg}
# mv kube-apiserver kube-controller-manager kube-scheduler kubectl /opt/kubernetes/bin
# chmod +x /opt/kubernetes/bin/* && chmod +x *.sh
# ./apiserver.sh 192.168.1.195 http://127.0.0.1:2379
# ./scheduler.sh 127.0.0.1
# ./controller-manager.sh 127.0.0.1
# echo "export PATH=$PATH:/opt/kubernetes/bin" >> /etc/profile
# source /etc/profile
安装完之后验证一下

七、运行Node组件
解压准备好的包:unzip node.zip
# mkdir -p /opt/kubernetes/{bin,cfg}
# mv kubelet kube-proxy /opt/kubernetes/bin
# chmod +x /opt/kubernetes/bin/* && chmod +x *.sh
# mv *.kubeconfig /opt/kubernetes/cfg/
# ./kubelet.sh 192.168.1.196 10.10.10.2
# ./proxy.sh 192.168.1.196
本节点IP是本机eth0网卡IP地址。
八、查询集群状态
在Master执行查看集群节点:
# kubectl get node
查看组件状态:
# kubectl get cs
九、启动一个测试示例
启动一个Nginx副本示例:
# kubectl run nginx --image=nginx --replicas=3
pod正常运行后,创建Service:
# kubectl expose deployment nginx --port=88 --target-port=80 --type=NodePort
# kubectl get svc nginx
在Node节点访问:
curl <CLUSTER-IP>:PORT
十、部署Web UI
上传yaml文件
[root@master ~]# kubectl create -f kubernetes-dashboard.yaml

Centos 7 部署Kubernetes(K8S)集群的更多相关文章
- Centos7 安装部署Kubernetes(k8s)集群
目录 一.系统环境 二.前言 三.Kubernetes 3.1 概述 3.2 Kubernetes 组件 3.2.1 控制平面组件 3.2.2 Node组件 四.安装部署Kubernetes集群 4. ...
- China Azure中部署Kubernetes(K8S)集群
目前China Azure还不支持容器服务(ACS),使用名称"az acs create --orchestrator-type Kubernetes -g zymtest -n kube ...
- 5.基于二进制部署kubernetes(k8s)集群
1 kubernetes组件 1.1 Kubernetes 集群图 官网集群架构图 1.2 组件及功能 1.2.1 控制组件(Control Plane Components) 控制组件对集群做出全局 ...
- Istio(二):在Kubernetes(k8s)集群上安装部署istio1.14
目录 一.模块概览 二.系统环境 三.安装istio 3.1 使用 Istioctl 安装 3.2 使用 Istio Operator 安装 3.3 生产部署情况如何? 3.4 平台安装指南 四.Ge ...
- 使用kubectl管理Kubernetes(k8s)集群:常用命令,查看负载,命名空间namespace管理
目录 一.系统环境 二.前言 三.kubectl 3.1 kubectl语法 3.2 kubectl格式化输出 四.kubectl常用命令 五.查看kubernetes集群node节点和pod负载 5 ...
- Kubernetes(k8s)集群部署(k8s企业级Docker容器集群管理)系列目录
0.目录 整体架构目录:ASP.NET Core分布式项目实战-目录 k8s架构目录:Kubernetes(k8s)集群部署(k8s企业级Docker容器集群管理)系列目录 一.感谢 在此感谢.net ...
- Kubernetes(k8s)集群部署(k8s企业级Docker容器集群管理)系列之集群部署环境规划(一)
0.前言 整体架构目录:ASP.NET Core分布式项目实战-目录 k8s架构目录:Kubernetes(k8s)集群部署(k8s企业级Docker容器集群管理)系列目录 一.环境规划 软件 版本 ...
- Kubernetes(k8s)集群部署(k8s企业级Docker容器集群管理)系列之自签TLS证书及Etcd集群部署(二)
0.前言 整体架构目录:ASP.NET Core分布式项目实战-目录 k8s架构目录:Kubernetes(k8s)集群部署(k8s企业级Docker容器集群管理)系列目录 一.服务器设置 1.把每一 ...
- Kubernetes(k8s)集群部署(k8s企业级Docker容器集群管理)系列之flanneld网络介绍及部署(三)
0.前言 整体架构目录:ASP.NET Core分布式项目实战-目录 k8s架构目录:Kubernetes(k8s)集群部署(k8s企业级Docker容器集群管理)系列目录 一.flanneld介绍 ...
随机推荐
- 【Weex学习】环境搭建
教程来源:http://jspang.com/2017/07/12/weex/,我本地是第一次安装Android Studio和教程有些出入 一.软件安装 1.安装Node.js 2.安装Java(h ...
- It was not possible to find any compatible framework version
It was not possible to find any compatible framework version The specified framework 'Microsoft.NETC ...
- C++基础算法学习——完美立方
形如a 3 = b 3 + c 3 + d 3 的等式被称为完美立方等式.例如12 3 = 6 3 + 8 3 + 10 3 .编写一个程序,对任给的正整数N(N≤100),寻找所有的四元组(a, b ...
- 第 15 章 位操作(binbit)
/*------------------------------------ binbit.c -- 使用位操作显示二进制 ------------------------------------*/ ...
- [技术] OIer的C++标准库 : 字符串库
引入 上次我在博客里介绍了OI中可能用到的STL中的功能, 今天我们接着来发掘C++标准库中能为OI所用的部分. 点击传送至我的上一篇系列博文 众所周知, OI中经常用到字符串相关的处理, 这时善用字 ...
- python第二十九课——文件读写(写数据的操作)
演示写数据的操作: 结论:往文件中写入数据,如果文件不存在,先创建文件,再写入内容 #1.打开文件 fw=open(r'd.txt','w',encoding='utf-8') #2.写数据操作 fw ...
- ubuntu 中安装 ZED SDK 及结合ROS 的使用
双目视觉(stereo vision),由于估计深度相对容易且稠密,在姿态估计和建图时容易初始化和估计尺度,所以在三维重建,SLAM等的应用中有这广泛的应用. ZED 作为近几年出现的商业化双目传感器 ...
- [SQL123] Oracle SQL 统计一定时间间隔内的数据
--Group by State_ts "per X minutes"select to_char(state_ts, 'hh24')||':'||floor(to_char(st ...
- 编写简易的JS输入框模糊查询匹配(附有源码和demo)
前言:JS输入框模糊匹配插件以前在工作写过一个类似的 所以这次写轻松很多,这次写优化了几个方面: 1. 添加动态加载css文件 不需要引入css css全部在JS动态生成. 2. 不需要额外的标签 只 ...
- Python2.7-zipfile
zipfile模块,提供了基本操作后缀为“zip”的文件的接口,一般使用 ZipFile 类完成操作 1.模块方法 zipfile.is_zipfile(filename):判断 filename 是 ...