Kubernetes研发环境搭建方案

一、架构总览

1.1 架构图

在这里插入图片描述

1.2 流程说明

在这里插入图片描述

二、服务规划

服务主机IPCPU内存硬盘系统
GitLab192.168.1.41816G100GCentOS 7.6
Harbor/Jenkins/Kubectl192.168.1.40816G500GCentOS 7.6
Rancher192.168.1.10816G300GCentOS 7.6
k8s node1192.168.1.1148G300GCentOS 7.6
k8s node2192.168.1.1248G300GCentOS 7.6
k8s node3192.168.1.1348G300GCentOS 7.6

准备好以上六台虚拟机(资源有限,只能把harbor和Jenkins放一起了)

三、软件安装

软件名版本描述
GitLab-ce11.2.3代码仓库
Harbor1.10.2镜像仓库
Jenkins2.222.3持续集成工具
Docker-ce19.03.8容器技术
Rancher2.4.3集成环境,用于部署Kubernetes
Kubectl1.18.2kubernetes的客户端命令行
Kubernetes1.17.5容器编排、管理工具

3.1 标准化环境

所有主机需要进行操作

先安装一些基本工具

yum install -y vim wget ntp net-tools unzip lrzsz

3.1.1 修改主机名

# 192.168.1.41
hostnamectl set-hostname gitlab.server
# 192.168.1.40
hostnamectl set-hostname harbor.server
# 192.168.1.10
hostnamectl set-hostname rancher.server
# 192.168.1.11
hostnamectl set-hostname node1.k8s
# 192.168.1.12
hostnamectl set-hostname node2.k8s
# 192.168.1.13
hostnamectl set-hostname node3.k8s

3.1.2 关闭防火墙、Selinux

# 关闭并设置为开机禁用
systemctl stop firewalld && systemctl disable firewalld
# 查看防火墙状态
systemctl status firewalld
● firewalld.service - firewalld - dynamic firewall daemon
   Loaded: loaded (/usr/lib/systemd/system/firewalld.service; disabled; vendor preset: enabled)
   Active: inactive (dead)
     Docs: man:firewalld(1)
# 临时关闭
setenforce 0
# 永久关闭
vim /etc/selinux/config
SELINUX=enforcing 改为 SELINUX=disabled
# 查看Selinux状态
getenforce #查看状态为Permissive

3.1.3 启动NTP服务

注:NTP服务可以只在k8s集群中安装,保证集群时间一致
关闭chrony服务,该服务会影响到NTP服务的开机启动

systemctl stop chronyd && systemctl disable chronyd

设置NTP服务

vim /etc/ntp.conf
# 将时钟服务器更改为如下4个国内服务器
server 0.cn.pool.ntp.org
server 1.cn.pool.ntp.org
server 2.cn.pool.ntp.org
server 3.cn.pool.ntp.org

启动时间同步服务器

systemctl start ntpd \
&& systemctl enable ntpd \
&& ntpdate -u 0.cn.pool.ntp.org \
&& hwclock --systohc \
&& date

3.1.4 安装Docker-ce

使用到的软件都是基于docker,所以docker也作为标准化环境了

卸载老版本

yum remove docker \
docker-client \
docker-client-latest \
docker-common \
docker-latest \
docker-latest-logrotate \
docker-logrotate \
docker-engine

安装Docker repository

# 安装依赖包
yum install -y yum-utils device-mapper-persistent-data lvm2 
# 设置仓库源(国内用阿里云的)
yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

安装docker-ce 19.03.8版本

yum install -y docker-ce-19.03.8

添加私有仓库harbor的地址

mkdir /etc/docker/
vim /etc/docker/daemon.json

添加如下内容

{
  "data-root":"/home/dockerlib",
  "registry-mirrors": ["https://1e7waog4.mirror.aliyuncs.com"],
  "insecure-registries": ["192.168.1.40"]
}

data-root:修改docker的根目录
registry-mirrors:镜像仓库改为阿里云的
insecure-registries:私有加密仓库设置为harbor的(稍后搭建harbor)

启动docker

systemctl daemon-reload && systemctl start docker && systemctl enable docker

docker命令补全

yum install -y bash-completion \
&& source /usr/share/bash-completion/bash_completion \
&& source /usr/share/bash-completion/completions/docker

3.2 安装Gitlab-ce

根据规划192.168.1.41主机安装GitLab

docker run --detach \
  --hostname 192.168.1.41 \
  --publish 443:443 --publish 80:80 \
  --name gitlab \
  --restart always \
  --volume /home/gitlab/config:/etc/gitlab \
  --volume /home/gitlab/logs:/var/log/gitlab \
  --volume /home/gitlab/data:/var/opt/gitlab \
  gitlab/gitlab-ce:11.2.3-ce.0

访问地址:http://192.168.1.41/

在这里插入图片描述
设置好root密码后,进入界面
在这里插入图片描述

3.3 安装Harbor

根据规划192.168.1.40主机安装Harbor

3.3.1 安装Docker Compose

Harbor需要使用docker-compose启动,这里先安装。

curl -L "https://github.com/docker/compose/releases/download/1.25.5/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
chmod +x /usr/local/bin/docker-compose
ln -s /usr/local/bin/docker-compose /usr/bin/docker-compose
# 版本
[root@harbor ~]# docker-compose -v
docker-compose version 1.24.1, build 4667896b

3.3.2 下载Harbor

离线安装包下载地址:https://github.com/goharbor/harbor/releases

tar -zxvf harbor-offline-installer-v1.10.2.tgz 

3.3.3 配置harbor.yml

vim harbor/harbor.yml 
# 修改的内容,并将https部分注释掉
hostname: 192.168.1.40
data_volume: /home/harbor
harbor_admin_password: Harbor12345
database:
	password: root123
jobservice:
	max_job_workers: 10
log:
	level: info
	rotate_count: 50
	rotate_size: 200M
	location: /var/log/harbor

3.3.4 启动Harbor

执行安装目录中的install.sh脚本,安装成功出现以下内容

[Step 5]: starting Harbor ...
Creating network "harbor_harbor" with the default driver
Creating harbor-log ... done
Creating harbor-portal ... done
Creating registryctl   ... done
Creating harbor-db     ... done
Creating redis         ... done
Creating registry      ... done
Creating harbor-core   ... done
Creating nginx             ... done
Creating harbor-jobservice ... done
✔ ----Harbor has been installed and started successfully.----

使用docker-compose关闭,开启服务

# 关闭服务
docker-compose down
# 开启服务
docker-compose up -d

访问地址:http://192.168.1.40/
在这里插入图片描述
登陆设置的账号密码,进入主界面
在这里插入图片描述

3.4 安装Jenkins

根据规划192.168.1.40主机安装Jenkins
下载网址:https://www.jenkins.io/download/
下载长期支持的通用war包。Jenkins需要Java和tomcat。
在这里插入图片描述

3.4.1 安装Java环境

下载地址
https://www.oracle.com/java/technologies/javase-jdk8-downloads.html
在这里插入图片描述
上传安装包至服务器的/opt目录,解压、改名

tar -zxvf jdk-8u251-linux-x64.tar.gz
mv jdk1.8.0_251/ jdk-1.8

配置环境变量

vim /root/.bashrc
# 追加下面内容
export JAVA_HOME=/opt/jdk-1.8
export JRE_HOME=$JAVA_HOME/jre
export PATH=$JAVA_HOME/bin:$PATH
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
# 刷新文件
source /root/.bashrc

3.4.2 安装Tomcat

下载tomcat:https://tomcat.apache.org/download-90.cgi
在这里插入图片描述
上传安装包至服务器的/opt目录,解压、改名

tar -zxvf apache-tomcat-9.0.34.tar.gz
mv apache-tomcat-9.0.34 jenkins

3.4.3 启动Jenkins

# 清空webapps下的内容
rm -rf /opt/jenkins/webapps/*
# 解压jenkins.war 至webapps/ROOT目录下
mv jenkins.war /opt/jenkins/webapps/

修改Jenkins的家目录,默认是/root

vim /opt/jenkins/bin/catalina.sh
# 添加一个环境变量
export JENKINS_HOME=/home/jenkins

如图
在这里插入图片描述
启动Jenkins

/opt/jenkins/bin/startup.sh

访问地址:http://192.168.1.40:8080/
在这里插入图片描述
选择推荐的插件
在这里插入图片描述
安装中
在这里插入图片描述
创建管理员账号
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
主界面
在这里插入图片描述

3.5 安装Kubectl

根据规划192.168.1.40主机安装kubectl

3.5.1 配置kubernetes的yum源

cat >> /etc/yum.repos.d/kubernetes.repo <<EOF
[kubernetes]
name=Kubernetes
baseurl=https://mirrors.aliyun.com/kubernetes/yum/repos/kubernetes-el7-x86_64/
enabled=1
gpgcheck=0
EOF

3.5.2 yum安装

yum install -y kubectl
3.5.3 kubectl命令补全
echo "source <(kubectl completion bash)" >> ~/.bashrc
source ~/.bashrc

3.6 安装Rancher

根据规划192.168.1.10主机安装rancher

docker run --detach \
  --publish 80:80 --publish 443:443 \
  --volume /home/rancher:/var/lib/rancher \
  --restart always \
  --name rancher \
  rancher/rancher:v2.4.3

访问地址:http://192.168.1.10/
设置密码
在这里插入图片描述
设置访问地址
在这里插入图片描述

3.7 安装kubernetes

根据规划192.168.1.11192.168.1.12192.168.1.13这三台主机安装kubernetes集群,这里直接使用rancher集成环境安装集群
在这里插入图片描述
选择自定义
在这里插入图片描述
集群设置
在这里插入图片描述
在这里插入图片描述
根据提示,将生成的命令复制到需要添加的节点主机上
在这里插入图片描述
等待集群加入
在这里插入图片描述
启动完毕
在这里插入图片描述
创建一个项目
在这里插入图片描述
给项目创建命名空间
在这里插入图片描述

3.7.1授权kubectl所在主机连接k8s集群

在这里插入图片描述
复制该内容
在这里插入图片描述
kubectl主机配置,将内容粘贴进config

mkdir ~/.kube
vim ~/.kube/config

3.7.2 给该项目的namespace创建harbor的私钥

kubectl create secret docker-registry demo-secret \
--namespace=demo-namespace \
--docker-server=http://192.168.1.40 \
--docker-username=admin \
--docker-password=xxxxxxxxxxx \
--docker-email=xxxxxxx@qq.com

查看创建的密钥

kubectl get secret -n demo-namespace
NAME                  TYPE                                  DATA   AGE
default-token-sgbrj   kubernetes.io/service-account-token   3      15m
demo-secret           kubernetes.io/dockerconfigjson        1      33s
  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值