国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

centos7搭建docker私人倉(cāng)庫(kù)(kubernetes)

lovXin / 566人閱讀

摘要:我們平時(shí)鏡像都是習(xí)慣于放在公共倉(cāng)庫(kù)的,比如。但在企業(yè)里,我們經(jīng)常會(huì)需要搭建公司自己的鏡像倉(cāng)庫(kù)。這樣可以將數(shù)據(jù)持久化,當(dāng)容器掛掉時(shí)鏡像不會(huì)丟失。下面會(huì)講解如何創(chuàng)建一個(gè)協(xié)議的高可用倉(cāng)庫(kù)。于是我為集群添加了一個(gè)節(jié)點(diǎn),來做集群的鏡像倉(cāng)庫(kù)。

我們平時(shí)鏡像都是習(xí)慣于放在公共倉(cāng)庫(kù)的,比如Dockerhub, Daocloud。但在企業(yè)里,我們經(jīng)常會(huì)需要搭建公司自己的鏡像倉(cāng)庫(kù)。
這篇文章講解如何用docker提供的registry鏡像來搭建自己的鏡像倉(cāng)庫(kù)。

不添加ssl認(rèn)證的倉(cāng)庫(kù)

下面用registry:2.6.2鏡像創(chuàng)建docker倉(cāng)庫(kù)。
將宿主機(jī)的5000端口映射到容器的5000端口。
將宿主機(jī)/mnt/registry掛在到容器的/var/lib/registry目錄,容器里的這個(gè)目錄就是存放鏡像的地方。這樣可以將數(shù)據(jù)持久化,當(dāng)容器掛掉時(shí)鏡像不會(huì)丟失。

mkdir /mnt/registry

docker run -d 
  -p 5000:5000 
  --restart=always 
  --name registry 
  -v /mnt/registry:/var/lib/registry 
  registry:2.6.2

docker倉(cāng)庫(kù)是需要ssl認(rèn)證的,由于現(xiàn)在沒有添加ssl認(rèn)證,需要在docker客戶端添加參數(shù):

vim /etc/sysconfig/docker

# 在OPTIONS下添加--insecure-registry=:5000
OPTIONS="--selinux-enabled --log-driver=json-file --signature-verification=false --insecure-registry=10.34.31.13:5000"

# 重啟docker
systemctl restart docker

我們可以測(cè)試一下新建的倉(cāng)庫(kù)是否可用。

docker push 10.34.31.13:5000/hello-world:v1

但這樣形式的倉(cāng)庫(kù)可用性不高,比如我們有多個(gè)鏡像倉(cāng)庫(kù)要使用,我們需要經(jīng)常去修改--insecure-registry參數(shù)。
下面會(huì)講解如何創(chuàng)建一個(gè)https協(xié)議的高可用倉(cāng)庫(kù)。

創(chuàng)建一個(gè)帶ssl認(rèn)證的高可用倉(cāng)庫(kù)

安裝openssl

yum install -y openssl

修改openssl.cnf文件

vim /etc/pki/tls/openssl.cnf

# 找到v3_ca,在下面添加宿主機(jī)的IP地址
[ v3_ca ]
subjectAltName = IP:10.34.31.13

如果沒有修改這個(gè)文件,最后生成的ssl證書使用時(shí)會(huì)報(bào)錯(cuò)如下:

x509: cannot validate certificate 10.34.31.13 because it doesn"t contain any IP SANs

生成ssl證書

mkdir /certs
openssl req -newkey rsa:4096 -nodes -sha256 
            -keyout /certs/domain.key -x509 -days 1000 
            -out /certs/domain.cert

# 生成證書的過程中需要填寫以下參數(shù),在Conmmon那一欄填寫你為dokcer倉(cāng)庫(kù)準(zhǔn)備的域名
Country Name (2 letter code) [AU]:CN
State or Province Name (full name) [Some-State]:
Locality Name (eg, city) []:
Organization Name (eg, company) [Internet Widgits Pty Ltd]:
Organizational Unit Name (eg, section) []:
Common Name (e.g. server FQDN or YOUR name) []:10.34.31.13:5000
Email Address []:

創(chuàng)建docker倉(cāng)庫(kù)

# 這里啟動(dòng)方式跟上面差別不大,多了掛載/certs文件夾和添加了兩個(gè)certificate參數(shù)
docker run -d 
  --restart=always 
  --name registry 
  -v /certs:/certs 
  -v /var/lib/registry:/var/lib/registry 
  -e REGISTRY_HTTP_ADDR=0.0.0.0:5000 
  -e REGISTRY_HTTP_TLS_CERTIFICATE=/certs/domain.cert 
  -e REGISTRY_HTTP_TLS_KEY=/certs/domain.key 
  -p 5000:5000 
  registry:2.6.2

配置docker客戶端

# 以后需要使用這個(gè)倉(cāng)庫(kù)的機(jī)器,在客戶端像這樣配置一下就可以了
mkdir /etc/docker/certs.d/10.34.31.13:5000
cp /certs/domain.cert /etc/docker/certs.d/10.34.31.13:5000/ca.crt

# 現(xiàn)在就可以測(cè)試一下了
docker push 10.34.31.13:5000/hello-world:v1

使用kubernetes部署docker倉(cāng)庫(kù)

上面的容器是由doker直接啟動(dòng)的,由于我使用的是kubernetes集群,所以我希望一切容器都能由kubernetes來管理。
于是我為kubernetes集群添加了一個(gè)node節(jié)點(diǎn),來做k8s集群的鏡像倉(cāng)庫(kù)。

生成ssl證書
參考上面,在準(zhǔn)備的node節(jié)點(diǎn)上生成ssl證書。

給node添加標(biāo)簽
因?yàn)槲抑幌朐谶@臺(tái)節(jié)點(diǎn)上運(yùn)行registry容器,所以需要給這臺(tái)節(jié)點(diǎn)添加標(biāo)簽,便于k8s部署能只選到這臺(tái)節(jié)點(diǎn)。

# n3是這個(gè)節(jié)點(diǎn)的hostname.如果沒有添加k8s客戶端權(quán)限,可以在master節(jié)點(diǎn)上執(zhí)行。
kubectl label node n3 bind-registry=ture

創(chuàng)建registry目錄,用于持久化images數(shù)據(jù)

mkdir /var/lib/registry

部署registry。dockerhub-dp.yaml我會(huì)在最后面貼出來。

kubectl create -f dockerhub-dp.yaml

配置docker客戶端
這個(gè)跟上面一個(gè)思路,端口稍有不同。

# 以后需要使用這個(gè)倉(cāng)庫(kù)的機(jī)器,在客戶端像這樣配置一下就可以了
mkdir /etc/docker/certs.d/10.34.31.13:30003
cp /certs/domain.cert /etc/docker/certs.d/10.34.31.13:5000/ca.crt

為了訪問方便,我將registry service的端口設(shè)置為了NodePort,但k8s限制這個(gè)端口只能設(shè)置為30000以上,所有我這里設(shè)置為了30003。

dockerhub-dp.yaml
apiVersion: apps/v1beta2
kind: Deployment
metadata:
  name: docker-local-hub
  namespace: kube-system
  labels:
    app: registry
spec:
  replicas: 1
  selector:
    matchLabels:
      app: registry
  template:
    metadata:
      labels:
        app: registry
    spec:
      containers:
      - name: registry
        image: registry:2.6.2
        ports:
        - containerPort: 5000
        env:
        - name: REGISTRY_HTTP_TLS_CERTIFICATE
          value: "/certs/domain.cert"
        - name: REGISTRY_HTTP_TLS_KEY
          value: "/certs/domain.key"
        volumeMounts:
        - mountPath: /var/lib/registry
          name: docker-hub
        - mountPath: /certs
          name: certs
      nodeSelector:
        bind-registry: "ture"
      volumes:
      - name: docker-hub
        hostPath:
          path: /var/lib/registry
          type: Directory
      - name: certs
        hostPath:
          path: /certs
          type: Directory
---
apiVersion: v1
kind: Service
metadata:
  name: docker-local-hub
  namespace: kube-system
  labels:
    app: registry
spec:
  selector:
    app: registry
  ports:
  - port: 5000
    targetPort: 5000
    nodePort: 30003
  type: NodePort

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://specialneedsforspecialkids.com/yun/27233.html

相關(guān)文章

  • centos7搭建docker私人倉(cāng)庫(kù)kubernetes

    摘要:我們平時(shí)鏡像都是習(xí)慣于放在公共倉(cāng)庫(kù)的,比如。但在企業(yè)里,我們經(jīng)常會(huì)需要搭建公司自己的鏡像倉(cāng)庫(kù)。這樣可以將數(shù)據(jù)持久化,當(dāng)容器掛掉時(shí)鏡像不會(huì)丟失。下面會(huì)講解如何創(chuàng)建一個(gè)協(xié)議的高可用倉(cāng)庫(kù)。于是我為集群添加了一個(gè)節(jié)點(diǎn),來做集群的鏡像倉(cāng)庫(kù)。 我們平時(shí)鏡像都是習(xí)慣于放在公共倉(cāng)庫(kù)的,比如Dockerhub, Daocloud。但在企業(yè)里,我們經(jīng)常會(huì)需要搭建公司自己的鏡像倉(cāng)庫(kù)。 這篇文章講解如何用d...

    mingzhong 評(píng)論0 收藏0
  • 利用K8S技術(shù)棧打造個(gè)人私有云(連載之:K8S集群搭建

    摘要:最近被業(yè)務(wù)折騰的死去活來,實(shí)在沒時(shí)間發(fā)帖,花了好多個(gè)晚上才寫好這篇帖子,后續(xù)會(huì)加油的利用技術(shù)棧打造個(gè)人私有云系列文章目錄利用技術(shù)棧打造個(gè)人私有云連載之初章利用技術(shù)棧打造個(gè)人私有云連載之集群搭建利用技術(shù)棧打造個(gè)人私有云連載之環(huán)境理解和練手利用 showImg(https://segmentfault.com/img/remote/1460000013077799); 最近被業(yè)務(wù)折騰的死...

    Ryan_Li 評(píng)論0 收藏0
  • 利用K8S技術(shù)棧打造個(gè)人私有云(連載之:K8S集群搭建

    摘要:最近被業(yè)務(wù)折騰的死去活來,實(shí)在沒時(shí)間發(fā)帖,花了好多個(gè)晚上才寫好這篇帖子,后續(xù)會(huì)加油的利用技術(shù)棧打造個(gè)人私有云系列文章目錄利用技術(shù)棧打造個(gè)人私有云連載之初章利用技術(shù)棧打造個(gè)人私有云連載之集群搭建利用技術(shù)棧打造個(gè)人私有云連載之環(huán)境理解和練手利用 showImg(https://segmentfault.com/img/remote/1460000013077799); 最近被業(yè)務(wù)折騰的死...

    邱勇 評(píng)論0 收藏0
  • centos7安裝kubernetes

    摘要:安裝修改修改的配置刪除啟動(dòng)檢查或者如果沒有安裝,則參照安裝配置這篇文章來。按類型查看參考安裝有文件沖突怎么解決啊搭建單機(jī)開發(fā)環(huán)境安裝環(huán)境安裝配置以此為準(zhǔn)集群中部署誤導(dǎo) centos7安裝 systemctl disable firewalld systemctl stop firewalld yum install lvm2 yum install docker yum install...

    岳光 評(píng)論0 收藏0
  • 【容器云 UK8S】最佳實(shí)踐:基于Jenkins的CI/CD實(shí)踐

    摘要:擴(kuò)展性好當(dāng)集群的資源嚴(yán)重不足而導(dǎo)致排隊(duì)等待時(shí),可以很容易的添加一個(gè)到集群中,從而實(shí)現(xiàn)擴(kuò)展。用法,選擇盡可能使用這個(gè)節(jié)點(diǎn)鏡像,填寫,這個(gè)容器鏡像是我們的運(yùn)行環(huán)境。更新文件,這里我們只是將中的鏡像更換成最新構(gòu)建出的鏡像。基于Jenkins的CI/CD實(shí)踐[TOC]一、概要提到K8S環(huán)境下的CI/CD,可以使用的工具有很多,比如Jenkins、Gitlab CI、新興的drone等,考慮到大多公司...

    Tecode 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<