搭建rancher-harbor

搭建Dokcer私有仓库(low版)

  • 授权需要用到
yum install httpd-tools -y
  • 创建用户名密码文件
mkdir -p /data/docker.registry/etc/registry/auth/
  • 创建管理员admin,存入密码文件
htpasswd -Bbn admin Theshy554 >> /data/docker.registry/etc/registry/auth/passwd
  • 设置docker配置文件
vim /etc/docker/daemon.json
{
  "registry-mirrors": ["http://hub-mirror.c.163.com", "https://docker.mirrors.ustc.edu.cn"],
  "insecure-registries": ["192.168.10.212:5000"]
}
  • 重新加载docker
systemctl daemon-reload
systemctl restart docker.service
  • 启动私有仓库容器
docker run -tid \
--name registry \
-h registry \
-p 5000:5000 \
--memory 512m \
--memory-swap -1 \
--restart always \
-v /data/docker.registry/var/lib/registry:/var/lib/registry \
-v /data/docker.registry/etc/registry/auth:/etc/registry/auth \
-e REGISTRY_AUTH=htpasswd \
-e "REGISTRY_AUTH_HTPASSWD_REALM=Registry Realm" \
-e REGISTRY_AUTH_HTPASSWD_PATH=/etc/registry/auth/passwd \
docker.io/registry
  • 访问私有仓库
http://192.168.10.212:5000/v2/_catalog
  • 镜像打标记
docker tag redis:latest 192.168.10.212:5000/redis_v1
  • 登录docker,否则会报没有权限
docker login -u admin -p Thehsy554 192.168.10.212:5000

# 退出
docker logout 192.168.10.212:5000
  • 提交带标签镜像到私有仓库
docker push 192.168.10.212:5000/redis_v1
  • 刷新页面查看即可
http://192.168.10.212:5000/v2/_catalog

搭建Harbor私有仓库(推荐)

  • 安装源
curl -o /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-7.repo
curl -o /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-7.repo

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 clean all
yum makecache
  • 安装常用的软件
yum install -y vim net-tools wget -y 
  • 安装docker和docker-compose
# 安装最新版本的 Docker Engine 和容器
sudo yum install docker-ce docker-ce-cli containerd.io

# 启动 docker
sudo systemctl start docker
# 停止 docker
sudo systemctl stop docker
# 重启 docker
sudo systemctl restart docker
# 设置开机启动
sudo systemctl enable docker
# 查看 docker 状态
sudo systemctl status docker
# 查看 docker 内容器的运行状态
sudo docker stats
# 查看 docker 概要信息
sudo docker info
# 查看 docker 帮助文档
sudo docker --help

# 安装校验 
docker -v

# 编辑文件 daemon.json
vi /etc/docker/daemon.json
{
  "registry-mirrors": ["http://hub-mirror.c.163.com", "https://docker.mirrors.ustc.edu.cn"]
}
# 重新加载某个服务的配置文件
sudo systemctl daemon-reload
# 重新启动 docker
sudo systemctl restart docker

# 安装docker-compose 如有需要,修改上面 1.24.1 为指定版本号即可
sudo curl -L "https://get.daocloud.io/docker/compose/releases/download/1.24.1/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
# 安装完后执行
sudo chmod +x /usr/local/bin/docker-compose
# 安装校验
docker-compose -v
  • 安装OpenSSL
yum install openssl openssl-devel -y 
  • 下载Harbor
https://github.com/goharbor/harbor/releases
  • 解压haobor
tar -xf harbor-offline-installer-v2.3.3.tgz -C /usr/local/
cd /usr/local/harbor/
  • 加载镜像
docker load < harbor.v2.3.3.tar.gz
  • 生成ca证书
    • O代表组织
    • OU代表组织别名
    • CN代表域名,没有的可以用IP
[root@localhost harbor]# mkdir /opt/ssl
[root@localhost harbor]# cd /opt/ssl
[root@localhost ssl]# pwd
/opt/ssl
		
[root@localhost ssl]# openssl genrsa -out ca.key 4096
		
[root@localhost ssl]# openssl req -x509 -new -nodes -sha512 -days 3650 \
-subj "/C=CN/ST=ShangHai/L=ShangHai/O=Oldboy/OU=Linux/CN=192.168.15.201" \
-key ca.key \
-out ca.crt
  • 生成服务器端证书
[root@localhost ssl]# openssl genrsa -out 192.168.15.201.key 4096
[root@localhost ssl]# openssl req -sha512 -new \
-subj "/C=CN/ST=ShangHai/L=ShangHai/O=Oldboy/OU=Linux/CN=192.168.15.201" \
-key 192.168.15.201.key \
-out 192.168.15.201.csr
  • 生成x509 v3服务文件
[root@localhost ssl]# cat > v3.ext <<-EOF
authorityKeyIdentifier=keyid,issuer
basicConstraints=CA:FALSE
keyUsage = digitalSignature, nonRepudiation, keyEncipherment, dataEncipherment
extendedKeyUsage = serverAuth
subjectAltName = IP:192.168.15.201
EOF
  • 使用该v3.ext文件为您的 Harbor 主机生成证书
# 将192.168.15.201 CRS 和 CRT 文件名中的 替换为 Harbor 主机名
openssl x509 -req -sha512 -days 3650 \
-extfile v3.ext \
-CA ca.crt -CAkey ca.key -CAcreateserial \
-in 192.168.15.201.csr \
-out 192.168.15.201.crt
  • 将192.168.15.201.csr转换成192.168.15.201.cert,给予docker使用
openssl x509 -inform PEM -in 192.168.15.201.crt -out 192.168.15.201.cert
  • 创建docker证书存放目录
[root@localhost ssl]# mkdir -p /etc/docker/certs.d/192.168.15.201
		
[root@localhost ssl]# cp 192.168.15.201.key /etc/docker/certs.d/192.168.15.201/
[root@localhost ssl]# cp 192.168.15.201.cert /etc/docker/certs.d/192.168.15.201/
[root@localhost ssl]# cp ca.crt /etc/docker/certs.d/192.168.15.201/
		
[root@localhost ssl]# ll /etc/docker/certs.d/192.168.15.201/
total 12
-rw-r--r-- 1 root root 2053 Jul  6 20:32 192.168.15.201.cert
-rw-r--r-- 1 root root 3243 Jul  6 20:32 192.168.15.201.key
-rw-r--r-- 1 root root 2029 Jul  6 20:32 ca.crt
		
[root@localhost ssl]# systemctl restart docker
  • 修改Harbor的配置文件
[root@localhost harbor]# pwd
/usr/local/harbor

[root@localhost harbor]# cp harbor.yml.tmpl harbor.yml
[root@localhost harbor]# vim harbor.yml
hostname: 192.168.15.201
port: 80

https:
  # https port for harbor, default is 443
  port: 443
  certificate: /opt/ssl/192.168.15.201.crt
  private_key: /opt/ssl/192.168.15.201.key
  • 生成配置
[root@localhost harbor]# ./prepare 
  • 设置docker配置文件
vim /etc/docker/daemon.json
{
  "registry-mirrors": ["http://hub-mirror.c.163.com", "https://docker.mirrors.ustc.edu.cn"],
  "insecure-registries": ["192.168.10.231"]
}

# 重新加载某个服务的配置文件
sudo systemctl daemon-reload
# 重新启动 docker
sudo systemctl restart docker
  • 开始安装
[root@localhost harbor]# ./install.sh 
  • 访问HTTPS - Harbor
https://192.168.15.201/

用户名:admin
密码: Harbor12345
  • 新建项目

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

  • 推送镜像到Harbor库
1、打tag
[root@localhost harbor]# docker pull nginx
[root@localhost harbor]# docker tag nginx:latest 192.168.10.231/keylion/nginx:20221117
[root@localhost harbor]# docker images
2、登录harbor
[root@localhost harbor]# docker login 192.168.15.201
Username: admin
Password: 
WARNING! Your password will be stored unencrypted in /root/.docker/config.json.
Configure a credential helper to remove this warning. See
https://docs.docker.com/engine/reference/commandline/login/#credentials-store
Login Succeeded
  • 推送镜像到当前项目
docker push 192.168.10.231/keylion/nginx:20221117

在这里插入图片描述

  • docker重启,重新启动Harbor
[root@keylion harbor]# cd /home/harbor/
[root@keylion harbor]# ./install.sh 

搭建Rancher

  • 清除旧的Rancher
rm -rf /etc/cni \
       /etc/kubernetes \
       /opt/cni \
       /opt/rke \
       /run/secrets/kubernetes.io \
       /run/calico \
       /run/flannel \
       /var/lib/calico \
       /var/lib/etcd \
       /var/lib/cni \
       /var/lib/kubelet \
       /var/lib/rancher/rke/log \
       /var/log/containers \
       /var/log/pods \
       /var/run/calico
       
rm -f /var/lib/containerd/io.containerd.metadata.v1.bolt/meta.db
sudo systemctl restart containerd
sudo systemctl restart docker
  • 拉取rancher镜像
docker pull rancher/rancher:v2.5.16
  • docker启动(80和443留给ingress使用)
docker run --privileged -d \
  --restart=unless-stopped \
  --restart=always \
  --name=rancher \
  -v /home/rancher/data:/var/lib/rancher \
  -p 8080:80 -p 8443:443  rancher/rancher:v2.5.16
  • 等3分钟访问 https://ip:8443 即可
  • 进入页面添加自定义集群

在这里插入图片描述

在这里插入图片描述

  • 直接下一步
    • 1、角色选择全选
      2、高级选项里面的内网配置-输入与rancher同网段可达地址 
      	eg:rancher服务192.168.10.212,rancher-agent(内网地址) 192.168.10.230 (230必须是可以ping通的)
      3、copy 最下面的命令道上面填写的内网服务器里执行即可
      

在这里插入图片描述

  • 等待5-10分钟,再ranhcer页面查看即可
  • 创建好自定义集群

在这里插入图片描述

  • 点击Default

  • 部署服务

在这里插入图片描述

  • 配置私有镜像仓库

    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

  • 参数填写
    • 1、Dokcer镜像可以填写公有镜像,或者自己项目的私有镜像(私有镜像在前面push到镜像仓库) 地址为:ip/镜像名/tag
      2、命名空间可自定义后这里进行分类选择
      3、端口映射 填写容器端口即可
      4、启动
      

在这里插入图片描述

  • 访问
    • nginx为例,容器端口为80,外部随机映射为31526
      访问地址:192.168.10.212:31526
      

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-BAwAnZea-1677575572045)(/Users/l-jiahui/Library/Application Support/typora-user-images/image-20221111152801236.png)]

  • 解决rancher和k8s集群ingress部署在同一台机器导致的80及443端口占用问题
1、集群k8s执行
kubectl edit daemonset nginx-ingress-controller -n ingress-nginx
2、增加参数
    containers:
      - args:
        - /nginx-ingress-controller
        - --default-backend-service=$(POD_NAMESPACE)/default-http-backend
        - --configmap=$(POD_NAMESPACE)/nginx-configuration
        - --tcp-services-configmap=$(POD_NAMESPACE)/tcp-services
        - --udp-services-configmap=$(POD_NAMESPACE)/udp-services
        - --annotations-prefix=nginx.ingress.kubernetes.io
        # 增加以下两个参数参数(一个是http端口,一个是https端口)
        - --http-port=11080
        - --https-port=11443   
3、然后使用删除原来的 nginx-ingress-controller 这个 pod,删除后 k8s 会自动使用新的配置创建 pod,这样就可以了
  • 负载均衡
    • 创建自定义ingress报错
    Internal error occurred: failed calling webhook “validate.nginx.ingress.kubernetes.io
    
    • 解决方案
    进入kubectl控制台
    1.查看webhook
    kubectl get validatingwebhookconfigurations
    ingress-nginx-admission
    2.删除ingress-nginx-admission
    kubectl delete -A ValidatingWebhookConfiguration ingress-nginx-admission
    
    • 创建负载均衡(引用链接)
    https://blog.csdn.net/fengyuyeguirenenen/article/details/124740648
    
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Rancher是一个开源的容器管理平台,它提供了丰富的功能来简化和管理容器的部署和管理过程。其中一个重要的功能是警报驱动程序(Alerting Drivers),它可以帮助用户及时了解集群和容器的健康状况,并及时采取相应的措施。 Rancher支持多种警报驱动程序,其中之一是sachet配置。Sachet是一个基于Web的错误日志和异常信息聚合工具,它可以将来自不同源的警报信息集中展示,帮助用户更好地监控和分析系统中的问题。 要使用rancher-alerting-drivers-sachet配置,首先需要在Rancher中启用警报驱动程序插件。然后,您需要从Rancher的应用商店中安装rancher-alerting-drivers-sachet插件。安装完成后,您可以在Rancher的Alerting配置页面中配置Sachet。 在Sachet的配置中,您需要提供Sachet的API地址、API密钥等信息。这些信息将用于与Sachet服务器建立连接,将Rancher中的警报数据传输到Sachet中。您还可以选择配置警报的级别、触发条件等。 一旦配置完成,当Rancher中的警报触发时,警报信息将被发送到Sachet中,并在Sachet的控制台中显示出来。您可以通过Sachet的界面查看警报信息、分析问题,并采取相应的措施。 总的来说,rancher-alerting-drivers-sachet配置是在Rancher中启用和配置Sachet作为警报驱动程序的一种方式。它可以帮助用户更好地监控和管理容器集群,及时发现和解决问题,提高系统的稳定性和可靠性。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值