【kubernetes】集群的 kubeadm 安装及 部署 harbor 仓库

目录

一、环境部署 

二、部署K8S集群

1、所有节点设备安装docker

2、所有节点安装kubeadm,kubelet和kubectl

3、查看初始化镜像并执行脚本加载镜像文件

4、初始化 kubeadm

4.1、方法一(yaml配置文件完成初始化)

5、设定 kubectl

6、设定 集群健康

7、所有节点部署网络插件 flannel

8、node 节点 加入集群

9、在 master 节点查看节点状态

10、测试

10.1、测试 pod 资源创建

10.2、暴露端口提供服务

10.3、浏览器测试访问

10.4、扩展为3个副本

三、部署 Dashboard

1、什么是 Dashboard

2、安装 Dashboard

3、使用输出的token登录Dashboard

四、部署 Harbor 私有仓库

1、安装docker

 2、所有 node 节点都修改 docker 配置文件,加上私有仓库配置

3、安装 Harbor

3.1、安装 docker-compose

3.2、修改 harbor 配置文件

3.3、生成证书和私钥文件

3.4、安装 harbor

4、 在本地使用浏览器访问

5、 在一个node节点上登录harbor并上传镜

6、创建三个 nginx pod

7、对内访问

8、对外访问

五、内核参数优化方案


一、环境部署 

服务器 主机名 IP地址 主要软件
master 节点 master01 172.16.88.77 docker、kubeadm、kubelet、kubectl、flannel
node01 节点 node01 172.16.88.88 docker、kubeadm、kubelet、kubectl、flannel
node02 节点 node02 172.16.88.99 docker、kubeadm、kubelet、kubectl、flannel
harbor 节点 hub.dh.com 172.16.12.15 docker、docker-compose、harbor-offline-v1.2.2

(1)所有设备关闭防火墙,清空iptables规则

systemctl disable --now firewalld
iptables -F && iptables -t nat -F && iptables -t mangle -F && iptables -X

 (2)所有设备关闭selinux

setenforce 0    #临时关闭
sed -i 's/enforcing/disabled/' /etc/selinux/config   #永久关闭

(3)所有设备关闭swap

swapoff -a    #临时关闭
sed -ri 's/.*swap.*/#&/' /etc/fstab    #永久关闭

(4)修改所有设备的主机名

[root@localhost ~]#hostnamectl set-hostname master
[root@localhost ~]#bash
 
[root@localhost ~]#hostnamectl set-hostname node01
[root@localhost ~]#bash
 
[root@localhost ~]#hostnamectl set-hostname node02
[root@localhost ~]#bash
 
[root@localhost ~]#hostnamectl set-hostname hub.dh.com
[root@localhost ~]#bash

(5) 所有设备修改本地的hosts文件

cat >> /etc/hosts << EOF
172.16.88.77 master
172.16.88.88 node01
172.16.88.99 node02
172.16.88.66 hub.dh.com
EOF

(7)所有设备调整内核参数

cat > /etc/sysctl.d/k8s.conf << EOF
#开启网桥模式,可将网桥的流量传递给iptables链
net.bridge.bridge-nf-call-ip6tables = 1
net.bridge.bridge-nf-call-iptables = 1
#关闭ipv6协议
net.ipv6.conf.all.disable_ipv6=1
net.ipv4.ip_forward=1
EOF
sysctl --system     #重新加载系统的配置参数

 (8)所有设备加载 ip_vs 模块

#加载 ip_vs 模块
for i in $(ls /usr/lib/modules/$(uname -r)/kernel/net/netfilter/ipvs|grep -o "^[^.]*");do echo $i; /sbin/modinfo -F filename $i >/dev/null 2>&1 && /sbin/modprobe $i;done

(9)所有设备实现时间同步

yum install ntpdate -y
ntpdate time.windows.com

大概步骤:

① 在所有节点上安装Docker和kubeadm

② 部署Kubernetes Master
③ 部署容器网络插件
④ 部署 Kubernetes Node,将节点加入Kubernetes集群中
⑤ 部署 Dashboard Web 页面,可视化查看Kubernetes资源
⑥ 部署 Harbor 私有仓库,存放镜像资源

二、部署K8S集群

1、所有节点设备安装docker

master、node01、node02 节点上都需要以下操作

#安装docker服务相关软件
yum install -y yum-utils device-mapper-persistent-data lvm2 
yum-config-manager --add-repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo 
yum install -y docker-ce docker-ce-cli containerd.io
mkdir /etc/docker
cat > /etc/docker/daemon.json <<EOF
{
  "registry-mirrors": ["https://xxxxxxxx.mirror.aliyuncs.com"],   #使用自己的阿里云镜像加速器
  "exec-opts": ["native.cgroupdriver=systemd"],
  "log-driver": "json-file",
  "log-opts": {
    "max-size": "100m"
  }
}
EOF

systemctl daemon-reload             #重新加载systemd服务
systemctl restart docker.service    #重启docker服务
systemctl enable docker.service     #开机自启docker服务
 
docker info | grep "Cgroup Driver"     #过滤得到"Cgroup Driver"详细信息
#使用Systemd管理的Cgroup来进行资源控制与管理,因为相对Cgroupfs而言,Systemd限制CPU、内存等资源更加简单和成熟稳定
#日志使用json-file格式类型存储,大小为100M,保存在/var/log/containers目录下,方便ELK等日志系统收集和管理日志

2、所有节点安装kubeadm,kubelet和kubectl

master、node01、node02 节点上都需要以下操作

#定义kubernetes源
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
repo_gpgcheck=0
gpgkey=https://mirrors.aliyun.com/kubernetes/yum/doc/yum-key.gpg https://mirrors.aliyun.com/kubernetes/yum/doc/rpm-package-key.gpg
EOF
#安装kubeadm,kubelet和kubectl
yum install -y kubelet-1.20.11 kubeadm-1.20.11 kubectl-1.20.11
#开机自启kubelet
systemctl enable kubelet.service
#K8S通过kubeadm安装出来以后都是以Pod方式存在,即底层是以容器方式运行,所以kubelet必须设置开机自启

3、查看初始化镜像并执行脚本加载镜像文件

(1)查看初始化需要的镜像

[root@master ~]#kubeadm config images list

(2)在 master 节点上传 v1.20.11.zip 压缩包至 /opt 目录

[root@master ~]#unzip v1.20.11.zip -d /opt/k8s
[root@master ~]#cd /opt/k8s/v1.20.11
#循环遍历当前目录下所有以 ".tar" 结尾的文件,并将它们作为镜像加载到 Docker 中
[root@master v1.20.11]#for i in $(ls *.tar); do docker load -i $i; done
#for i in $(ls *.tar); 对当前目录下所有以 ".tar" 结尾的文件执行循环操作
#do docker load -i $i; 对每个符合条件的文件执行 docker load 命令,从文件中加载镜像到 Docker 引擎中

(3)复制镜像和脚本到 node 节点,并在 node 节点上执行脚本加载镜像文件

[root@master ~]#scp -r /opt/k8s root@node01:/opt
[root@master ~]#scp -r /opt/k8s root@node02:/opt

#在 node01 节点上执行脚本加载镜像文件
[root@node01 ~]#cd /opt/k8s/v1.20.11/
[root@node01 v1.20.11]#for i in $(ls *.tar); do docker load -i $i; done
 
#在 node02 节点上执行脚本加载镜像文件
[root@node02 ~]#cd /opt/k8s/v1.20.11/
[root@node02 v1.20.11]#for i in $(ls *.tar); do docker load -i $i; done

4、初始化 kubeadm

在 master 节点上完成初始化 kubeadm

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值