2022-03-12 day102 kubernets harbor仓库与namespace

注意:最好是吧harbor装在另外一台不在k8s集群上的机器上,这样安装后k8s不会有问题,因为安装harbor要重启docker,重启docker就相当于重起kube-system起的pod。就会导致k8s奔溃,最后要重装k8s。

使用web-7作为harbor主机
1.先安装docker 和docker-compose
先安装docker版本
yum -y install docker-ce-19.03.15 docker-ce-cli-19.03.15

没有这个安装包,是没有docker下载源

image.png

4.安装docker-所有机器都操作

配置阿里源

cd /etc/yum.repos.d/
wget https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
yum makecache fast

image.png

安装指定版本的Docker

yum list docker-ce --showduplicates
yum -y install docker-ce-19.03.15 docker-ce-cli-19.03.15


image.png

安装docker-compose

k8s使用harbor
1.安装harbor
yum install docker-compose -y


image.png

cd /opt/
tar zxf harbor-offline-installer-v1.9.0-rc1.tgz


image.png
image.png

cd harbor


image.png

修改配置:

vim harbor.yml
[root@master /opt/harbor]# cat harbor.yml |egrep 'hostname|harbor_admin|8888'
hostname: 10.0.0.10
port: 8888
harbor_admin_password: 123

image.png

执行安装脚本:

./install.sh
先启动docker


image.png

再安装


image.png

image.png

报错了。重新装一边
还是报错
image.png
image.png

注意:发现还是安装不成功,web-7恢复到快照状态,并且设置为2G内存,开始时512M内存,查看docker那章安装harbor。


image.png
image.png

image.png

安装成功


image.png

访问:

http://10.0.0.10:8888

image.png

2.修改docker信任仓库
cat > /etc/docker/daemon.json << 'EOF'
{
"registry-mirrors": ["https://ig2l319y.mirror.aliyuncs.com"],
"exec-opts": ["native.cgroupdriver=systemd"],
"insecure-registries" : ["http://10.0.0.10:8888"]
}
EOF
systemctl restart docker #高危操作

image.png

image.png
image.png

注意;所有的节点都要这样操作
重启docker完成后,测试一下
在harbor新建一个项目文件夹k8s


image.png

先给nginx镜像打一个标签


image.png

再上传镜像到harbor上


image.png

访问拒绝,因为node1没有登录

登录测试


image.png

上传测试


image.png
image.png

上传之后,镜像大小会压缩存储到harbor上


image.png

harbor密码文件会下面的目录


image.png
image.png
image.png
image.png

查看所有的./docker/config.json文件


image.png

3.将docker-login转码成base64编码

注意,直接解析出来的是三行,需要手动编辑成一行

选择其中任意一个节点都可以,文件的内容都是一样的
[root@master ~]# cat .docker/config.json |base64
ewoJImF1dGhzIjogewoJCSIxMC4wLjAuMTA6ODg4OCI6IHsKCQkJImF1dGgiOiAiWVdSdGFXNDZNVEl6IgoJCX0KCX0sCgkiSHR0cEhlYWRlcnMiOiB7CgkJIlVzZXItQWdlbnQiOiAiRG9ja2VyLUNsaWVudC8xOS4wMy4xNSAobGludXgpIgoJfQp9


image.png

4.创建Secret资源,
secret 是密码的意思

创建secret资源配置文件
把他复制出来到nodepad++上


image.png

master节点上创建secret目录


image.png

把加密的字符修改成一行,使用电脑退格键


image.png

复制到下面

cat > harbor-secret.yaml << 'EOF'
apiVersion: v1
kind: Secret
metadata:
name: harbor-secret
data:
.dockerconfigjson: ewoJImF1dGhzIjogewoJCSIxMC4wLjAuMTA6ODg4OCI6IHsKCQkJImF1dGgiOiAiWVdSdGFXNDZNVEl6IgoJCX0KCX0sCgkiSHR0cEhlYWRlcnMiOiB7CgkJIlVzZXItQWdlbnQiOiAiRG9ja2VyLUNsaWVudC8xOS4wMy4xNSAobGludXgpIgoJfQp9
type: kubernetes.io/dockerconfigjson
EOF

apiVersion: v1
kind: Secret
metadata:
  name: harbor-secret
data:
  .dockerconfigjson: ewoJImF1dGhzIjogewoJCSIxMC4wLjAuMTA6ODg4OCI6IHsKCQkJImF1dGgiOiAiWVdSdGFXNDZNVEl6IgoJCX0sCgkJIjEwLjAuMC43Ojg4ODgiOiB7CgkJCSJhdXRoIjogIllXUnRhVzQ2TVRJeiIKCQl9Cgl9LAoJIkh0dHBIZWFkZXJzIjogewoJCSJVc2VyLUFnZW50IjogIkRvY2tlci1DbGllbnQvMTkuMDMuMTUgKGxpbnV4KSIKCX0KfQ==

type: kubernetes.io/dockerconfigjson

image.png

执行secret资源配置

image.png

5.应用并查看
kubectl create -f harbor-secret.yaml
kubectl get secrets
kubectl describe secrets harbor-secret


image.png

6.创建带有imagePullSecrets的POD
cat > nginx-pod.yml << 'EOF'
apiVersion: v1
kind: Pod
metadata:
name: nginx-pod
labels:
app: nginx
spec:
imagePullSecrets:

  • name: harbor-secret

containers:

  • name: nginx
    image: 10.0.0.10:8888/k8s/nginx:1.14.0
    imagePullPolicy: IfNotPresent
    EOF
apiVersion: v1
kind: Pod
metadata:
  name: nginx-pod
  labels:
    app: nginx
spec:
  imagePullSecrets:
  - name: harbor-secret

  containers:
  - name: nginx
    image: 10.0.0.7:8888/k8s/nginx:1.14.0
    imagePullPolicy: IfNotPresent
image.png

先删除deployment创建的pod


image.png

image.png

再创建一个新的pod


image.png

并且查看详细信息
image.png

7.创建POD测试
kubectl apply -f nginx-pod.yml
kubectl describe pod nginx-pod

namespace

docker 的namespace


image.png

k8s的namespace隔离的是项目,不同命名空间是不能相互通信,有一定的资源隔离
不能直接通信


image.png

查看所有的命名空间
kubectl get ns


image.png

默认命名空间
kubectl get ns default


image.png

查看kube-system名命空间的pod
kubectl -n kube-system get pod


image.png

查看kube-system命名空间的svc
kubectl -n kube-system get svc


image.png

1.不同命名空间的POD能不能互通?
OK


image.png
image.png

创建两个不同命名空间的pod


image.png
image.png

报错了。是因为提前要创建两个命名空间


image.png

查看新建的命令空间
kubectl get ns


image.png

查看aaa和bbb命令空间的pod


image.png

查看aaa命名空间pod的IP
kubectl -n aaa describe pod busybox-aaa


image.png

查看bbb命令空间pod的IP
kubectl describe -n bbb pod busybox-bbb


image.png

先进入aaa命名空间的pod
kubectl -n aaa exec -it busybox-aaa /bin/sh


image.png

ping bbb命名空间的pod


image.png

结论:发现能够ping通

2.相同命名空间的POD能不能通过Service访问
OK

image.png

删除错误的svc和pod


image.png

查看创建aaa的svc和pod资源,查看bbb的svc和pod资源


image.png

发现没有ping
想办法安装ping命令
apt-get update


image.png

安装成功
apt-get install -y inetutils-ping


image.png

测试ping成功
ping nginx-aaa-svc


image.png

ping不同命名空间的svc就不行
ping nginx-bbb-svc


image.png

3.不同命名空间的POD能不能通过Service访问

直接访问另一个命名空间的资源是不通的

/ # ping nginx-svc
ping: bad address 'nginx-svc'


image.png

如果需要访问不同命名空间的资源,需要在资源名称后面加上这个资源所在的命名空间

/ # ping nginx-svc.aaa
PING nginx-svc.aaa (10.1.133.59): 56 data bytes
64 bytes from 10.1.133.59: seq=0 ttl=64 time=0.109 ms
64 bytes from 10.1.133.59: seq=1 ttl=64 time=0.072 ms
ping nginx-bbb-svc.bbb


image.png

总结:nginx测试的资源配置

[root@master ~/k8s_yml/namespace]# cat nginx-aaa-pod.yml 
apiVersion: v1
kind: Pod
metadata:
  namespace: aaa
  name: nginx-aaa-pod
  labels:
    app: nginx-aaa
spec:
  containers:
  - name: nginx-aaa
    image: nginx:1.14.0
    imagePullPolicy: IfNotPresent

[root@master ~/k8s_yml/namespace]# cat nginx-aaa-svc.yml 
apiVersion: v1
kind: Service
metadata:
  namespace: aaa 
  name: nginx-aaa-svc
spec:
  selector:
    app: nginx-aaa
  ports:
  - name: nginx-aaa
    port: 80
    protocol: TCP
    targetPort: 80
[root@master ~/k8s_yml/namespace]# cat nginx-bbb-pod.yml 
apiVersion: v1
kind: Pod
metadata:
  namespace: bbb
  name: nginx-bbb-pod
  labels:
    app: nginx-bbb
spec:
  containers:
  - name: nginx-bbb
    image: nginx:1.14.0
    imagePullPolicy: IfNotPresent
[root@master ~/k8s_yml/namespace]# cat nginx-bbb-svc.yml 
apiVersion: v1
kind: Service
metadata:
  namespace: bbb
  name: nginx-bbb-svc
spec:
  selector:
    app: nginx-bbb
  ports:
  - name: nginx-bbb
    port: 80
    protocol: TCP
    targetPort: 80
image.png
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 215,539评论 6 497
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 91,911评论 3 391
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 161,337评论 0 351
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 57,723评论 1 290
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 66,795评论 6 388
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,762评论 1 294
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,742评论 3 416
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,508评论 0 271
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,954评论 1 308
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,247评论 2 331
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,404评论 1 345
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,104评论 5 340
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,736评论 3 324
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,352评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,557评论 1 268
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,371评论 2 368
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,292评论 2 352

推荐阅读更多精彩内容