文章目錄
- 一、搭建需要準備
- 二、搭建Nexus私服鏡像庫
- 三、利用DockerFile創建鏡像上傳私服
- 四、創建Deployment型別yml進行創建pod
一、搭建需要準備
| 虛擬機 | ip | 配置 |
|---|---|---|
| k8s-master | 192.168.230.127 | cpu4/4以上,記憶體8/8以上 |
| k8s-node1 | 192.168.230.128 | cpu4/4以上,記憶體8/8以上 |
| k8s-node2 | 192.168.230.129 | cpu4/4以上,記憶體8/8以上 |
| nexus | 192.168.230.130 | cpu4/4以上,記憶體4/4以上 |
二、搭建Nexus私服鏡像庫
我的私服搭建是基于docker搭建的,所以得先安裝docker,
-
安裝docker
wget https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo -O /etc/yum.repos.d/docker-ce.repo yum -y install docker-ce-18.06.1.ce-3.el7 systemctl enable docker && systemctl start docker cat > /etc/docker/daemon.json << EOF {"registry-mirrors": ["https://b9pmyelo.mirror.aliyuncs.com"]} EOF -
關閉seLinux
sed -i 's/enforcing/disabled/' /etc/selinux/config # 永久 setenforce 0 # 臨時 -
安裝Nexus
docker search nexus # 搜索nexus,選擇下載數最多的第一個sonatype/nexus3 docker pull sonatype/nexus3 docker run -id -u root -p 8081:8081 -p 8082:8082 --privileged=true -v /opt/nexus-data:/nexus-data --restart=always sonatype/nexus3注意: 運行鏡像命令要加上-u root和–privileged=true,否則會運行失敗,
解釋:
-d 后臺運行
-p 埠號映射 8081 管理界面使用 8082 nexus3私服使用
-v 檔案夾映射 私服的檔案都保存到本地檔案夾/opt/nexus-data中
–restart=alwarys 自動重啟
sonatype/nexus3 鏡像名稱 -
Neuxs管理工具
用瀏覽器訪問 ip:8081 進入Nexus管理頁面,點擊右上角的Sign in進行登錄,首次登錄,到映射目錄(/opt/nexus-data)下找到admin.password,打開可以看到admin的默認密碼,登錄程序中根據提示修改為自己密碼, -
創建存盤物件


-
創建Docker倉庫




-
設定權限

-
查看私服倉庫內容

三、利用DockerFile創建鏡像上傳私服
-
配置k8s集docker的daemon.json檔案,
vi /etc/docker/daemon.json { "registry-mirrors": ["https://b9pmyelo.mirror.aliyuncs.com"], "insecure-registries": ["192.168.230.130:8082"] #這里放私服ip }重啟docker:
systemctl daemon-reload #多載docker配置 systemctl restart docker #重啟docker服務 docker info #查看docker資訊確認倉庫是否添加 -
把專案jar包用DockerFile的方式創建鏡像,
撰寫DockerFile腳本代碼:
FROM java:8 #基礎鏡像,如果本地倉庫沒有,會從遠程倉庫拉取 MAINTAINER wei.zhou #創建人 ADD demo-0.0.1-SNAPSHOT.jar demo.jar #第一個是jar包名稱,第二個是重命名名稱 EXPOSE 8080 #暴露埠 ENTRYPOINT ["java","-jar","demo.jar"]構建鏡像
docker build -f Dockerfile檔案位置 -t 鏡像名:版本 . 【末尾有個點,一點要注意】這里可以看一下我之前的Kubernetes/k8s(三)k8s創建jar包docker鏡像的pod
-
登錄私服并上傳鏡像,
docker login 192.168.230.130:8082 #登錄私服倉庫發布之前需要把鏡像名稱修改為私服地址,
格式為:服務器地址:服務器埠/鏡像名稱:版本
命令為: docker tag 鏡像id(build好的鏡像的id) 鏡像新名稱最后使用上傳命令 docker push 鏡像名稱:TAG
docker push 192.168.230.130:8082/demo:latest
四、創建Deployment型別yml進行創建pod
-
創建secret秘鑰
kubectl create secret docker–registry <regsecret-name> --docker-server=<your-registry-server> --docker-username=<your-name> --docker-password=<your-pword> --docker-email=<your-email>,注意: 每一個空間都需要創建各自的秘鑰!
e.g: --docker-server=192.168.230.130:8082 (不需要加http://) -
yaml中使用imagePullSecrets
--- apiVersion: apps/v1 kind: Deployment metadata: name: local-demo namespace: default spec: replicas: 1 selector: matchLabels: app: lodemo release: stabel template: metadata: labels: app: lodemo release: stabel env: test spec: imagePullSecrets: - name: docker-local containers: - name: lodemo image: 192.168.230.130:8082/demo:latest imagePullPolicy: IfNotPresent ports: - name: http containerPort: 80 --- apiVersion: v1 kind: Service metadata: name: lodemo namespace: default spec: type: NodePort selector: app: lodemo release: stabel ports: - name: http port: 8080 targetPort: 8080 nodePort: 30080 --- -
運行yml
kubectl apply -f xxxx.yml


轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/209710.html
標籤:python
