资源链接: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. 对EJB2.1几种接口的认识

    因为教学上的需要,重新梳理了下EJB几种接口的职能,讲的是EJB3,虽然按照课件也能做出一个运行良好的EJB程序来,但是要想比较好的理解EJB3的工作原理,只知道这些注解还是不够的,特别是涉及到的接口 ...

  2. FinalShell使用---Xshell的良心国产软件

    最近发现了一款同类产品FinalShell,还是一块良心国货.初步体验了一下,确实是良心之作.且免费(通用版),支持国货. FinalShell是一体化的的服务器,网络管理软件,不仅是ssh客户端,还 ...

  3. elasticsearch报错之 memory locking requested for elasticsearch process but memory is not locked

    安装elasticsearch报错如下: [2019-01-14T03:57:16,453][ERROR][o.e.b.Bootstrap ] [ip-172-31-30-62.ec2.interna ...

  4. Angular2学习笔记(1)——Hello World

    1. 写在前面 之前基于Electron写过一个Markdown编辑器.就其功能而言,主要功能已经实现,一些小的不影响使用的功能由于时间关系还没有完成:但就代码而言,之前主要使用的是jQuery,由于 ...

  5. 在HTML中使用object和embed标签插入视频

    object标签和embed标签都能给页面添加多媒体内容: 一.object 对于object,w3c上定义object为一个嵌入的对象.可以使用此元素向您的 XHTML 页面添加多媒体.此元素允许您 ...

  6. 使用SuperMap对接天地图

    我们在做项目时,经常需要与天地图对接,对接形式分为2种: 1. 将公网天地图用作项目底图,在JavaScript客户端加载显示: 2. 将自己发布的WMTS地图服务给别人用,同时需要自己的服务能和天地 ...

  7. Android开发之jdk安装及环境变量配置

    然后开始配置环境变量,JAVA_HOME,Path和classpath三部分: (1)在变量名输入框中写入“JAVA_HOME”,在变量值输入框中写入“C:\Program Files\Java\jd ...

  8. mysql用户创建与授权

    一. 创建用户 命令: CREATE USER 'username'@'host' IDENTIFIED BY 'password'; 说明: username:你将创建的用户名 host:指定该用户 ...

  9. leetcode 460. LFU Cache

    hash:存储的key.value.freq freq:存储的freq.key,也就是说出现1次的所有key在一起,用list连接 class LFUCache { public: LFUCache( ...

  10. ActivityCapture

    Index: ActivityCapture.java =================================================================== --- ...