基础环境配置

1、操作系统选择

  • Ubuntu 16.04(64位 Server版)
  • Centos/RedHat Linux 7.5+(64位)

2、Docker版本选择

  • 1.12.6
  • 1.13.1
  • 17.03.2

3、主机名配置

因为K8S的规定,主机名只支持包含 -.(中横线和点)两种特殊符号,并且主机名不能出现重复。

4、配置Hosts

配置每台主机的hosts(/etc/hosts),添加host_ip $hostname/etc/hosts文件中。

5、CentOS关闭selinux

sudo sed -i 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/selinux/config

6、关闭防火墙

关闭防火墙

1、Centos

systemctl stop firewalld.service && systemctl disable firewalld.service

2、Ubuntu

ufw disable

7、配置主机时间、时区、系统语言

查看时区

date -R 或者 timedatectl

修改时区

ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime

修改系统语言环境

sudo echo 'LANG="en_US.UTF-8"' >> /etc/profile;source /etc/profile

8、Kernel性能调优

cat >> /etc/sysctl.conf<<EOF
net.ipv4.ip_forward=
net.bridge.bridge-nf-call-iptables=
net.ipv4.neigh.default.gc_thresh1=
net.ipv4.neigh.default.gc_thresh2=
net.ipv4.neigh.default.gc_thresh3=
EOF sysctl –p

Docker安装配置

1、各系统的安装方法

Ubuntu安装方法

1、修改系统源

sudo cp /etc/apt/sources.list /etc/apt/sources.list.bak
cat > /etc/apt/sources.list << EOF
deb http://mirrors.aliyun.com/ubuntu/ xenial main
deb-src http://mirrors.aliyun.com/ubuntu/ xenial main
deb http://mirrors.aliyun.com/ubuntu/ xenial-updates main
deb-src http://mirrors.aliyun.com/ubuntu/ xenial-updates main
deb http://mirrors.aliyun.com/ubuntu/ xenial universe
deb-src http://mirrors.aliyun.com/ubuntu/ xenial universe
deb http://mirrors.aliyun.com/ubuntu/ xenial-updates universe
deb-src http://mirrors.aliyun.com/ubuntu/ xenial-updates universe
deb http://mirrors.aliyun.com/ubuntu/ xenial-security main
deb-src http://mirrors.aliyun.com/ubuntu/ xenial-security main
deb http://mirrors.aliyun.com/ubuntu/ xenial-security universe
deb-src http://mirrors.aliyun.com/ubuntu/ xenial-security universe
EOF

2、Docker-ce 安装

# 定义安装版本
export docker_version=17.03.
# step : 安装必要的一些系统工具
sudo apt-get update
sudo apt-get -y install apt-transport-https ca-certificates curl software-properties-common bash-completion
# step : 安装GPG证书
sudo curl -fsSL http://mirrors.aliyun.com/docker-ce/linux/ubuntu/gpg | sudo apt-key add -
# Step : 写入软件源信息
sudo add-apt-repository "deb [arch=amd64] http://mirrors.aliyun.com/docker-ce/linux/ubuntu $(lsb_release -cs) stable"
# Step : 更新并安装 Docker-CE
sudo apt-get -y update
version=$(apt-cache madison docker-ce|grep ${docker_version}|awk '{print $3}')
# --allow-downgrades 允许降级安装
sudo apt-get -y install docker-ce=${version} --allow-downgrades
# 设置开机启动
sudo systemctl enable docker

Centos 安装方法

1、修改系统源

sudo cp /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.bak
cat > /etc/yum.repos.d/CentOS-Base.repo << EOF
[base]
name=CentOS-$releasever - Base - mirrors.aliyun.com
failovermethod=priority
baseurl=http://mirrors.aliyun.com/centos/$releasever/os/$basearch/
http://mirrors.aliyuncs.com/centos/$releasever/os/$basearch/
http://mirrors.cloud.aliyuncs.com/centos/$releasever/os/$basearch/
gpgcheck=
gpgkey=http://mirrors.aliyun.com/centos/RPM-GPG-KEY-CentOS-7 #released updates
[updates]
name=CentOS-$releasever - Updates - mirrors.aliyun.com
failovermethod=priority
baseurl=http://mirrors.aliyun.com/centos/$releasever/updates/$basearch/
http://mirrors.aliyuncs.com/centos/$releasever/updates/$basearch/
http://mirrors.cloud.aliyuncs.com/centos/$releasever/updates/$basearch/
gpgcheck=
gpgkey=http://mirrors.aliyun.com/centos/RPM-GPG-KEY-CentOS-7 #additional packages that may be useful
[extras]
name=CentOS-$releasever - Extras - mirrors.aliyun.com
failovermethod=priority
baseurl=http://mirrors.aliyun.com/centos/$releasever/extras/$basearch/
http://mirrors.aliyuncs.com/centos/$releasever/extras/$basearch/
http://mirrors.cloud.aliyuncs.com/centos/$releasever/extras/$basearch/
gpgcheck=
gpgkey=http://mirrors.aliyun.com/centos/RPM-GPG-KEY-CentOS-7 #additional packages that extend functionality of existing packages
[centosplus]
name=CentOS-$releasever - Plus - mirrors.aliyun.com
failovermethod=priority
baseurl=http://mirrors.aliyun.com/centos/$releasever/centosplus/$basearch/
http://mirrors.aliyuncs.com/centos/$releasever/centosplus/$basearch/
http://mirrors.cloud.aliyuncs.com/centos/$releasever/centosplus/$basearch/
gpgcheck=
enabled=
gpgkey=http://mirrors.aliyun.com/centos/RPM-GPG-KEY-CentOS-7 #contrib - packages by Centos Users
[contrib]
name=CentOS-$releasever - Contrib - mirrors.aliyun.com
failovermethod=priority
baseurl=http://mirrors.aliyun.com/centos/$releasever/contrib/$basearch/
http://mirrors.aliyuncs.com/centos/$releasever/contrib/$basearch/
http://mirrors.cloud.aliyuncs.com/centos/$releasever/contrib/$basearch/
gpgcheck=
enabled=
gpgkey=http://mirrors.aliyun.com/centos/RPM-GPG-KEY-CentOS-7
EOF

2、安装Docker-ce

# 添加用户(可选)
sudo adduser `<user>`
# 为新用户设置密码
sudo passwd `<user>`
# 为新用户添加sudo权限
sudo echo '<user> ALL=(ALL) ALL' >> /etc/sudoers
# 卸载旧版本Docker软件
sudo yum remove docker \
docker-client \
docker-client-latest \
docker-common \
docker-latest \
docker-latest-logrotate \
docker-logrotate \
docker-selinux \
docker-engine-selinux \
docker-engine \
container*
# 定义安装版本
export docker_version=17.03.
# step : 安装必要的一些系统工具
sudo yum update -y
sudo yum install -y yum-utils device-mapper-persistent-data lvm2 bash-completion
# Step : 添加软件源信息
sudo yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
# Step : 更新并安装 Docker-CE
sudo yum makecache all
version=$(yum list docker-ce.x86_64 --showduplicates | sort -r|grep ${docker_version}|awk '{print $2}')
sudo yum -y install --setopt=obsoletes= docker-ce-${version} docker-ce-selinux-${version}
# 如果已经安装高版本Docker,可进行降级安装(可选)
yum downgrade --setopt=obsoletes= -y docker-ce-${version} docker-ce-selinux-${version}
# 把当前用户加入docker组
sudo usermod -aG docker `<new_user>`
# 设置开机启动
sudo systemctl enable docker

2、Docker配置

配置镜像加速地址

可以配置多条,以数组的形式编写,地址需要添加协议头。编辑/etc/docker/daemon.json加入以下内容

{
"registry-mirrors": ["https://z34wtdhg.mirror.aliyuncs.com","https://$IP:$PROT"]
}

配置私有仓库

Docker默认只信任TLS加密的仓库地址(https),所有非https仓库默认无法登陆也无法拉取镜像。insecure-registries字面意思为不安全的仓库,通过添加这个参数对非https仓库进行授信。可以设置多个insecure-registries地址,以数组形式书写,地址不能添加协议头(http)。编辑/etc/docker/daemon.json加入以下内容:

{
"insecure-registries":["harbor.httpshop.com","bh-harbor.suixingpay.com"]
}

配置Docker存储驱动

存储驱动有很多种,例如:overlay、overlay2、devicemapper等,前两者是OverlayFS类型的,是一个新一代的联合文件系统,类似于AUFS,但速度更快,更加稳定。这里推荐新版的overlay2。

要求:

  • overlay2: Linux内核版本4.0或更高版本,或使用内核版本3.10.0-514+的RHEL或CentOS
  • 支持的磁盘文件系统:ext4(仅限RHEL 7.1),xfs(RHEL7.2及更高版本),需要启用d_type=true

编辑/etc/docker/daemon.json加入以下内容

{
"storage-driver": "overlay2",
"storage-opts": ["overlay2.override_kernel_check=true"]
}

配置日志驱动

容器在运行时会产生大量日志文件,很容易占满磁盘空间。通过配置日志驱动来限制文件大小与文件的数量。 >限制单个日志文件为100M,最多产生3个日志文件

{
"log-driver": "json-file",
"log-opts": {
"max-size": "100m",
"max-file": ""
}
}

daemon.json的样例

{
"registry-mirrors": ["https://z34wtdhg.mirror.aliyuncs.com"],
"insecure-registries":["harbor.httpshop.com","bh-harbor.suixingpay.com"],
"storage-driver": "overlay2",
"storage-opts": ["overlay2.override_kernel_check=true"]
}
{
"log-driver": "json-file",
"log-opts": {
"max-size": "100m",
"max-file": ""
}
}

单节点安装

使用默认自签名证书

默认情况下,Rancher会自动生成一个用于加密的自签名证书。从你的Linux主机运行Docker命令来安装Rancher,而不需要任何其他参数:

docker run -d --restart=unless-stopped \
-p : -p : \
-v /root/var/log/auditlog:/var/log/auditlog \
-e AUDIT_LEVEL= \
rancher/rancher:latest

HA集群安装

前提条件

  • kubectl kubernetes客户端工具
  • rke 用于构建kubernetes集群
  • helm kubernetes包管理工具

创建四层负载均衡器

我们将使用Nginx作为四层负载均衡器,Nginx会将所有的连接转发到rancher节点之一。注意:不要使用任何rancher节点作为负载均衡器,会出现端口冲突。

1、安装nginx

需要定制的话,就自己源码安装即可,这里就使用yum或者apt-get

yum install nginx

2、编制nginx配置文件

#复制下面的代码到文本编辑器,保存为nginx.conf。
worker_processes ;
worker_rlimit_nofile ; events {
worker_connections ;
} http {
server {
listen ;
return https://$host$request_uri;
}
} stream {
upstream rancher_servers {
least_conn;
server <IP_NODE_1>: max_fails= fail_timeout=5s;
server <IP_NODE_2>: max_fails= fail_timeout=5s;
server <IP_NODE_3>: max_fails= fail_timeout=5s;
}
server {
listen ;
proxy_pass rancher_servers;
}
}

这里的IP_NODE_1、IP_NODE_2、IP_NODE_3替换成真实环境中的Rancher节点的IP地址。

3、加载配置文件

nginx -s reload

RKE安装kubernetes集群

下载rke工具

wget https://github.com/rancher/rke/releases/download/v0.1.11/rke_linux-amd64
mv rke_linux-amd64 rke && chmod 755 rke && mv rke /usr/local/bin
rke --version

修改hosts(所有节点)

cat << EOF >>/etc/hosts
> 10.10.3.201 rancher-master01
> 10.10.3.202 rancher-master02
> 10.10.3.204 rancher-master03
> EOF

免密操作

ssh-keygen -t rsa
ssh-copy-id -i .ssh/id_rsa.pub root@10.10.3.201
ssh-copy-id -i .ssh/id_rsa.pub root@10.10.3.202
ssh-copy-id -i .ssh/id_rsa.pub root@10.10.3.204

创建rancher-cluster.yml文件

使用下面的示例创建rancher-cluster.yml文件,使用创建的3个节点的IP地址替换列表中的IP地址。

nodes:
- address: 10.10.3.201
user: root
role: [controlplane,worker,etcd]
- address: 10.10.3.202
user: root
role: [controlplane,worker,etcd]
- address: 10.10.3.204
user: root
role: [controlplane,worker,etcd] services:
etcd:
snapshot: true
creation: 6h
retention: 24h

运行rke安装

rke up --config ./rancher-cluster.yml

测试集群

安装完成后,会产生一个kube_config_rancher-cluster.yml文件,这个是集群的认证文件。

mkdir ~/.kube
cat kube_config_rancher-cluster.yml >> ~/.kube/config

通过kubectl 测试连接集群,查看所有节点状态

$ kubectl get nodes
NAME STATUS AGE VERSION
10.10.3.201 Ready 19m v1.11.3
10.10.3.202 Ready 19m v1.11.3
10.10.3.204 Ready 19m v1.11.3

安装Helm

配置Helm客户端访问权限

Helm在集群上安装tiller服务以管理charts. 由于RKE默认启用RBAC, 因此我们需要使用kubectl来创建一个serviceaccountclusterrolebinding才能让tiller具有部署到集群的权限。

kubectl -n kube-system create serviceaccount tiller
kubectl create clusterrolebinding tiller --clusterrole cluster-admin --serviceaccount=kube-system:tiller

安装Helm客户端

二进制安装方法:

1、下载预期的版本 releases

2、解压缩

tar zxvf helm-v2.11.0-linux-amd64.tar.gz

3、把helm二进制文件拷贝到系统环境里

mv  linux-amd64/helm /usr/bin/

安装Helm Server(Tiller)

Helm的服务器端部分Tiller,通常运行在Kubernetes集群内部。但是对于开发,它也可以在本地运行,并配置为与远程Kubernetes集群通信。

快速集群内安装

helm init --service-account tiller   --tiller-image registry.cn-hangzhou.aliyuncs.com/google_containers/tiller:v2.11.0 --stable-repo-url https://kubernetes.oss-cn-hangzhou.aliyuncs.com/charts

安装Tiller金丝雀版本

helm init --service-account tiller --canary-image

Helm安装Rancher

1、添加chart仓库

使用helm repo add命令添加Rancher chart仓库地址

helm repo add rancher-latest https://releases.rancher.com/server-charts/latest

2、安装证书管理器

从Helm stable目录安装cert-manager

helm install stable/cert-manager \
--name cert-manager \
--namespace kube-system

3、选择SSL配置方式并安装Rancher server

Rancher server设计默认需要开启SSL/TLS配置来保证安全。

helm install rancher-latest/rancher \
--name rancher \
--namespace cattle-system \
--set hostname=rancher.httpshop.com

hostname根据自己情况定义

到此为止Rancher-server 已经安装完成。

Rancher中安装kuberntes

1、自定义节点创建集群

主机类型:

  • 云主机
  • 内部虚拟机
  • 裸机服务器

创建自定义集群

1、从"集群"页面,单击"添加集群"。

2、选择“CUSTOM”

3、输入“集群名称”

4、使用“成员角色”配置集群用户的授权

5、使用“集群选项”,选择Docker版本、kubernetes版本、网络组件等相关配置,点击下一步。

6、从主机角色列表中选择节点所要添加的角色。

7、将屏幕上显示的命令复制到剪贴板。

8、使用首选shell登录Linux主机,例如PuTTy或远程终端连接。运行复制到剪贴板的命令。

9、在Linux主机上运行完命令后,单击“完成”

2、导入kuebernetes集群

您可以导入现有的Kubernetes集群,然后使用Rancher进行管理。

前提

如果现有Kubernetes集群已cluster-admin定义角色,则必须具有此cluster-admin权限才能将集群导入Rancher。要应用权限,您需要kubectl create clusterrolebinding cluster-admin-binding --clusterrole cluster-admin --user [USER_ACCOUNT]在运行kubectl命令之前运行以导入群集。

1、从“ 群集”页面中,单击“ 添加群集”

2、选择“Import”

3、输入集群名称

4、使用“ 成员角色”配置群集的用户授权。

  • 单击“ 添加成员”以添加可以访问群集的用户。
  • 使用“ 角色”下拉列表为每个用户设置权限。

5、单击创建

6、将显示的第一个命令复制到剪贴板。

7、使用首选shell(例如PuTTy或远程终端连接)登录到其中一个群集节点。运行复制到剪贴板的命令。

8、如果收到消息certificate signed by unknown authority,请将Rancher中显示的第二个命令复制到剪贴板。然后在群集节点上运行该命令。

9、在Linux主机上运行完命令后,单击“完成”

Rancher2.1安装部署的更多相关文章

  1. [原]CentOS7安装Rancher2.1并部署kubernetes (三)---解决登录kubernets超时和部署测试Pod和Containter[nginx为例]

    ##################    Rancher v2.1.7  +    Kubernetes 1.13.4  ################ ##################### ...

  2. [原]CentOS7安装Rancher2.1并部署kubernetes (二)---部署kubernetes

    ##################    Rancher v2.1.7  +    Kubernetes 1.13.4  ################ ##################### ...

  3. [原]CentOS7安装Rancher2.1并部署kubernetes (一)---部署Rancher

    ##################    Rancher v2.1.7  +    Kubernetes 1.13.4  ################ ##################### ...

  4. Oracle安装部署,版本升级,应用补丁快速参考

    一.Oracle安装部署 1.1 单机环境 1.2 Oracle RAC环境 1.3 Oracle DataGuard环境 1.4 主机双机 1.5 客户端部署 二.Oracle版本升级 2.1 单机 ...

  5. KVM安装部署

    KVM安装部署 公司开始部署KVM,KVM的全称是kernel base virtual machine,对KVM虚拟化技术研究了一段时间, KVM是基于硬件的完全虚拟化,跟vmware.xen.hy ...

  6. Linux平台oracle 11g单实例 + ASM存储 安装部署 快速参考

    操作环境:Citrix虚拟化环境中申请一个Linux6.4主机(模板)目标:创建单机11g + ASM存储 数据库 1. 主机准备 2. 创建ORACLE 用户和组成员 3. 创建以下目录并赋予对应权 ...

  7. 分布式文件系统 - FastDFS 在 CentOS 下配置安装部署

    少啰嗦,直接装 看过上一篇分布式文件系统 - FastDFS 简单了解一下的朋友应该知道,本次安装是使用目前余庆老师开源的最新 V5.05 版本,是余庆老师放在 Github 上的,和目前你能在网络上 ...

  8. C# winform安装部署(转载)

    c# winform 程序打包部署 核心总结: 1.建议在完成的要打包的项目外,另建解决方案建立安装部署项目(而不是在同一个解决方案内新建),在解决方案上右击-〉添加-〉现有项目-〉选择你要打包的项目 ...

  9. Ubuntu14.04 Django Mysql安装部署全过程

    Ubuntu14.04 Django Mysql安装部署全过程   一.简要步骤.(阿里云Ubuntu14.04) Python安装 Django Mysql的安装与配置 记录一下我的部署过程,也方便 ...

随机推荐

  1. jmeter接口测试实战-创建用户

    jmeter接口测试实战-创建用户 相信大多数看到标题的同学都会有疑问, 创建用户不是很简单吗, 调用一下创建用户接口, 传入指定入参, 用户即可创建成功, 今天我们的实战来讲讲创建场景.通过接口创建 ...

  2. Centos7 使用 kubeadm 安装Kubernetes 1.13.3

    目录 目录 什么是Kubeadm? 什么是容器存储接口(CSI)? 什么是CoreDNS? 1.环境准备 1.1.网络配置 1.2.更改 hostname 1.3.配置 SSH 免密码登录登录 1.4 ...

  3. There is already an object named '#xxxx' in the database.

    这个案例是前几天同事遇到的一个案例,在存储过程中"删除"了一个临时表,然后重新创建这个临时表时遇到"There is already an object named 'x ...

  4. Keepalibed监控nginx

    配置Keepalived监控nginx --wang 目的: 通过Keepalived实现对nginx的监控,每两秒扫描一次,如果nginx关闭,尝试重启nginx,两秒后检查nginx是否启动,如果 ...

  5. IPV6地址中的%号什么意思

    在我配置ipv6 网络中,会发现ipv6地址后有%号,这表示什么呢? IPv6地址中的百分号是网卡interface标识.这个表示该地址仅限于标号为21的网络接口(一般指网卡或者虚拟网卡).而在其他网 ...

  6. 在centos中搭建基于nginx的apt源服务器,整合yum源和apt源在一台服务器

    1.首先关闭防护墙或者设置规则通过且关闭selinux 2.nginx-1.14.2版本(编译安装)-自定义安装路径 3.开启nginx目录浏览 以上步骤请参考前文:https://www.cnblo ...

  7. idea右键无法生成javaclass

    博客转自:https://www.cnblogs.com/zjfjava/p/9219237.html 项目中新建目录之后,要在该目录下新增java Class文件,右键——>New发现无对应选 ...

  8. As-If-Serial 理解

    as-if-serial语义的意思指: 不管怎么重排序(编译器和处理器为了提高并行度),(单线程)程序的执行结果不能被改变.编译器,runtime 和处理器都必须遵守as-if-serial语义.为了 ...

  9. EntityFramework Core进行读写分离最佳实践方式,了解一下(二)?

    前言 写过上一篇关于EF Core中读写分离最佳实践方式后,虽然在一定程度上改善了问题,但是在评论中有的指出更换到从数据库,那么接下来要进行插入此时又要切换到主数据库,同时有的指出是否可以进行底层无感 ...

  10. BAT面试题:使用数组实现一个简单的阻塞队列

    这道题是我亲身经历的一道大厂面试题,非常值得分享! 这道题可以分为两个步骤进行编码解答,第一步是基于数组实现一个队列,第二步是实现线程阻塞. 如果是基于数组实现栈的数据结构,那么我们只需要一个指针进行 ...