专业编程基础技术教程

网站首页 > 基础教程 正文

k8s自动化运维二

ccvgpt 2024-08-04 12:21:51 基础教程 9 ℃

承接上文快速搭建自动化运维环境

gitlab备份代码恢复

k8s自动化运维二

  • 将备份代码放到指定目录下
  • 执行恢复备份操作
  • cd /home/git/gitlab # 默认从/home/git/data/backups目录下找 bin/rake gitlab:backup:restore BACKUP=1658077259_2022_07_17_11.8.1
  • 代码恢复了之后,若push代码报错
remote: /home/git/gitlab-shell/lib/gitlab_logger.rb:30:in `initialize': Permission denied @ rb_sysopen - /var/log/gitlab/gitlab-shell/gitlab-shell.log (Errno::EACCES)

该报错表明:git用户没有权限访问gitlab-shell.log文件

用root用户,将该文件授权给git用户即可

chown -R git:git /var/log/gitlab/gitlab-shell/gitlab-shell.log

安装minikube

  • 创建一个子用户adduser developer passwd developer usermod -aG wheel developer su - developer sudo groupadd docker sudo usermod -aG docker $USER 或 sudo usermod -aG docker $USER && newgrp docker
  • 启动minikube
minikube start --driver=docker --image-mirror-country=cn --registry-mirror=https://kaakiyao.mirror.aliyuncs.com

查看minikube状态

查看k8s集群状态

发现minikube docker容器的ip是192.168.49.2

安装kuboard

kubectl apply -f https://kuboard.cn/install-script/kuboard.yaml

kubectl apply -f https://addons.kuboard.cn/metrics-server/0.3.7/metrics-server.yaml

kubectl get pods -l k8s.kuboard.cn/name=kuboard -n kube-system
kubectl get svc -n kube-system |grep kuboard

查看kuboard service是否正常提供服务

因ip=192.168.49.2是minikube docker容器环境的ip,而宿主机的ip是10.1.2.219,

注意:minikube 集群的网络与主机 VM 网络隔离,NodePort服务只能在 VM 或minikube docker 容器的外部 IP 上访问,不会在任何主机 VM 网络接口上暴露任何端口

如您所见192.168.49.2,可以通过br-xxx网络接口访问,因为它是192.168.49.1/24网络的一部分,由 virtualbox vm 使用,因此如果不使用额外的端口转发,就无法访问它,不仅在VM的外部 IP 上,而且在其任何内部网络接口上。NodePort服务Deployment仅在嵌套的VirtualBox VM(或其他管理程序)的外部 IP 上公开,该 IP可从VM主机访问,但未在其任何网络接口上公开,因此也无法从外部访问,所以还需要做一个端口转发

kubectl port-forward --address 0.0.0.0 service/kuboard 32568:80 -n kube-system

这将注定任何的流量转发VM地址到你的Service,在这种情况下甚至不必须是NodePort类型,ClusterIP也可以工作。

即访问宿主机的32568端口,通过service=kuboard转发到pod的80端口

访问kuboard

http://10.1.2.219:32568/dashboard

通过token的方式登录

echo $(kubectl -n kube-system get secret $(kubectl -n kube-system get secret | grep kuboard-user | awk '{print $1}') -o go-template='{{.data.token}}' | base64 -d)

将该token值输入kuboard即可完成登陆

也可以通过在kuboard web ui导入minukute集群的方式

cat ~/.kube/config

这3个地方要进行修改

  • 把3个key的名称后面加上-data,如certificate-authority变成certificate-authority-data
  • 把3个key对应的value值替换下 以certificate-authority-data的value值为例
  • cat /home/developer/.minikube/ca.crt|base64 -w 0

使用gitlab进行ci/cd的时候,gitlab-ci文件也需要变下

sudo su - developer -c "pwd & kubectl apply -f deploy/xibaoxiao-gateway.yaml"

先切换成developer用户,再执行命令,因为minikube环境是通过developer用户创建的。

k8s访问registry下载镜像 https访问问题

安装好了registry服务之后,先让docker服务允许https访问registry不做检验

vim /etc/docker/daemon.json
"insecure-registries":[
        "10.1.2.219:5000"
    ],

然后再让k8s允许https访问registry不做校验

minikube start --driver=docker --image-mirror-country=cn --registry-mirror=https://kaakiyao.mirror.aliyuncs.com --insecure-registry=10.1.2.219:5000

在启动minikube的时候添加--insecure-registry=10.1.2.219:5000

Tags:

最近发表
标签列表