5.Harbor

yum install -y yum-utils device-mapper-persistent-data lvm2

github搜索compose
curl -L https://github.com/docker/compose/releases/download/1.24.1/docker-compose-uname -s-uname -m -o /usr/local/bin/docker-compose
查看:docker-compose --version

github搜索harbor
https://storage.googleapis.com/harbor-releases/release-1.8.0/harbor-offline-installer-v1.8.2-rc1.tgz
解压:tar zxf harbor-offline-installer-v1.7.4.tgz -C /usr/local/
cd /usr/local/harbor/
vim harbor.cfg
hostname = reg.mydomain.com hostname = 192.168.52.10
运行安装脚本
/usr/local/harbor/install.sh

在浏览器上登录harbor:192…168.52.10
用户名:admin 密码:Harbor12345
在harbor新建项目:

修改docker配置文件:
vim /usr/lib/systemd/system/docker.service
ExecStart=/usr/bin/dockerd --insecure-registry 192.168.52.10
重启服务:
systemctl daemon-reload
systemctl restart docker
systemctl restart kubelet

因重启后会导致harbor容器停掉,执行命令(在harbor目录下执行,不然会报错):
docker-compose stop
docker-compose start

将docker登录到hardor:
docker login -u admin -p Harbor12345 192.168.52.10

测试:
改名格式:docker tag 192.168.52.10/bdqn/nginx:v1.0 192.168.52.10/bdqn/nginx:v1.0
上传:docker push 192.168.52.10/bdqn/nginx:v1.0
其他节点修改docker配置文件
修改完重启
使用用户名密码登录harbor(不登录不能使用)
测试:docker pull 192.168.52.10/bdqn/nginx:v1.0

k8s数据管理:
k8s支持的数据持久化方案:emptyDir、hostPath、NFS、云存储等。

emptyDir:
编写yaml文件
[root@master ~]# cat emptyDir.yaml
apiVersion: v1
kind: Pod
metadata:
name: producer-consumer
spec:
containers:

  • image: busybox
    name: prodicer
    volumeMounts: #数据挂载项
    • mountPath: /producer_dir #容器内部路径(自定义)
      name: shared-volume #挂载类型(会把容器路径挂载到这里)
      args: #在容器内部运行的命令
    • /bin/sh
    • -c
    • echo ‘hello world’ > /producer_dir/hello ; sleep 30000
  • image: busybox
    name: consumer
    volumeMounts:
    • mountPath: /consumer_dir
      name: shared-volume
      args:
    • /bin/sh
    • -c
    • cat /consumer_dir/hello ; sleep 30000

volumes:

  • name: shared-volume #为空目录起的名字
    emptyDir: {} #空目录,dockerhost上没有固定的目录

emptyDir volume对于容器来说的持久的,对于pod则不是。当pod从节点删除时,volume的内容也会被删除。但如果只是容器被销毁而pod还在,则volume不受影响。也就是说:emptyDir volume的生命周期与pod一致。

hostPath:
host Path Volume的作用是将Dockerhost文件系统中已经存在的目录Mount给pod容器。但大部分应用也不会使用hostPath volume,因为这实际上增加了pod与节点的耦合,限制了pod的使用。
不过那些需要访问k8s集群或者docker内部数据的应用则需要使用hostPath。

附件:emptyDir.yaml

apiVersion: v1
kind: Pod
metadata:
  name: producer-consumer
spec:
  containers:
  - image: busybox
    name: prodicer
    volumeMounts:
    - mountPath: /producer_dir
      name: shared-volume
    args:
    - /bin/sh
    - -c
    - echo 'hello world' > /producer_dir/hello ; sleep 30000
  - image: busybox
    name: consumer
    volumeMounts:
    - mountPath: /consumer_dir
      name: shared-volume
    args:
    - /bin/sh
    - -c
    - cat /consumer_dir/hello ; sleep 30000

  volumes:
  - name: shared-volume
    emptyDir: {}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值