资源链接: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)集群的更多相关文章

  1. Centos7 安装部署Kubernetes(k8s)集群

    目录 一.系统环境 二.前言 三.Kubernetes 3.1 概述 3.2 Kubernetes 组件 3.2.1 控制平面组件 3.2.2 Node组件 四.安装部署Kubernetes集群 4. ...

  2. China Azure中部署Kubernetes(K8S)集群

    目前China Azure还不支持容器服务(ACS),使用名称"az acs create --orchestrator-type Kubernetes -g zymtest -n kube ...

  3. 5.基于二进制部署kubernetes(k8s)集群

    1 kubernetes组件 1.1 Kubernetes 集群图 官网集群架构图 1.2 组件及功能 1.2.1 控制组件(Control Plane Components) 控制组件对集群做出全局 ...

  4. Istio(二):在Kubernetes(k8s)集群上安装部署istio1.14

    目录 一.模块概览 二.系统环境 三.安装istio 3.1 使用 Istioctl 安装 3.2 使用 Istio Operator 安装 3.3 生产部署情况如何? 3.4 平台安装指南 四.Ge ...

  5. 使用kubectl管理Kubernetes(k8s)集群:常用命令,查看负载,命名空间namespace管理

    目录 一.系统环境 二.前言 三.kubectl 3.1 kubectl语法 3.2 kubectl格式化输出 四.kubectl常用命令 五.查看kubernetes集群node节点和pod负载 5 ...

  6. Kubernetes(k8s)集群部署(k8s企业级Docker容器集群管理)系列目录

    0.目录 整体架构目录:ASP.NET Core分布式项目实战-目录 k8s架构目录:Kubernetes(k8s)集群部署(k8s企业级Docker容器集群管理)系列目录 一.感谢 在此感谢.net ...

  7. Kubernetes(k8s)集群部署(k8s企业级Docker容器集群管理)系列之集群部署环境规划(一)

    0.前言 整体架构目录:ASP.NET Core分布式项目实战-目录 k8s架构目录:Kubernetes(k8s)集群部署(k8s企业级Docker容器集群管理)系列目录 一.环境规划 软件 版本 ...

  8. Kubernetes(k8s)集群部署(k8s企业级Docker容器集群管理)系列之自签TLS证书及Etcd集群部署(二)

    0.前言 整体架构目录:ASP.NET Core分布式项目实战-目录 k8s架构目录:Kubernetes(k8s)集群部署(k8s企业级Docker容器集群管理)系列目录 一.服务器设置 1.把每一 ...

  9. Kubernetes(k8s)集群部署(k8s企业级Docker容器集群管理)系列之flanneld网络介绍及部署(三)

    0.前言 整体架构目录:ASP.NET Core分布式项目实战-目录 k8s架构目录:Kubernetes(k8s)集群部署(k8s企业级Docker容器集群管理)系列目录 一.flanneld介绍 ...

随机推荐

  1. windows环境下 nginx+iis 反向代理解决跨域问题

    项目基本完成,是时候花点时间整理一下最近的姿势了 1 什么是跨域? 网上对于跨域的概念会有大篇幅的文章去解释,似乎有点玄乎,初学者很容易对这个概念产生恐惧,跨域其实很简单,其实只要知道一点,无法跨域访 ...

  2. QT学习2

    一.常用控件与常用的功能函数.  QDialog.QMainWindow.QPushButton.QLabel.QLineEdit 构造函数指定父容器.setText,getText,size,res ...

  3. HTTP学习---TCP三次握手和四次挥手

    IP协议 首先我们看 IP(Internet Protocol)协议.IP 协议提供了主机和主机间的通信. 为了完成不同主机的通信,我们需要某种方式来唯一标识一台主机,这个标识,就是著名的IP地址.通 ...

  4. SNMP协议利用

    1.安装snmp服务 2.配置snmp服务 运行Services.msc 添加社区public,只读 启动服务 3.在kali运行 Snmpwalk -c public -v 2c IP 即可查看目标 ...

  5. [ML学习笔记] 决策树与随机森林(Decision Tree&Random Forest)

    [ML学习笔记] 决策树与随机森林(Decision Tree&Random Forest) 决策树 决策树算法以树状结构表示数据分类的结果.每个决策点实现一个具有离散输出的测试函数,记为分支 ...

  6. react native环境搭建(含错误处理)

    1.  Python 2  注意,不要选择3.0及以上的,还不成熟 安装过程中一直 next就可以了,但是注意下图,勾选添加到系统环境变量 安装完之后cmd输入 python 查看是否安装成功. 补充 ...

  7. C借函数指针构造映射

    这是候老师的<深入浅出 MFC>中C借函数指针构造映射截图,可以看到MFC们的映射思想:

  8. BZOJ1007:[HNOI2008]水平可见直线(计算几何)

    Description 在xoy直角坐标平面上有n条直线L1,L2,...Ln,若在y值为正无穷大处往下看,能见到Li的某个子线段,则称Li为 可见的,否则Li为被覆盖的. 例如,对于直线: L1:y ...

  9. [SDOI2008]洞穴勘测

    嘟嘟嘟 写完lct的板儿后觉得这就是一道大水题. 连pushup都不用. 不过还是因为一个zz的错误debug了一小会儿(Link的时候连出自环--) 还有一件事就是Cut的时候判断条件还得加上,因为 ...

  10. 列表操作方法,元祖,for循环嵌套

    li = ['alex','wusir''女神']增 1.增加到列表末位 li.append() 连续增加,输入q停止 li = ['alex','wusir''女神'] while 1: s = i ...