实验环境: 利用rancher搭建kubernetes集群,及搭建和关联harbor私有镜像库。
?????????rancher:http://10.10.10.10:8888 ?????????kubernetes:10.10.10.10 ?????????harbor:10.10.10.100 ?????????images:10.10.10.100/test_nginx:latest ?????????app:nginx实验目的:
????一.实践docker:search pull、run、tag、build、push功能。了解参数含义 ??????????#docker search *imagesname ??????????#docker pull ??*imagesname ??????????#docker run ?-i/-t/-d ??-p 发布端口:容器端口 ?--name 容器名 ?*imagesname:version ??/bin/bash ??????????#docker tag ?*oldimagesname *newimagesname ?or ?私用仓库地址/project::version ?(注释仓库地址方便后面push) ??????????#docker build -d 容器名 ??*imagesname:version ?(-d ?container保持后台允许状态) ??????????#docker push 私有仓库地址/project::version (先注册上/usr/lib/systemd/system/docker.service ?为ExecStart=/usr/bin/dockerd ?--insecure-registry=10.10.10.100, 再docker login 10.10.10.100 ?) ??????????#docker ps -a(all) /-l(最后任务) /-q(简短信息) ????二.通过Dockerfile 构建镜像,测试结果。关联私有镜像库,推送镜像文件。 ?????touch Dockerfile——————————————————————————————————————————————————————————————————————————————————————————————————————
FROM ?centos:latestMAINTAINER lvyADD http://nginx.org/download/nginx-1.14.0.tar.gz .RUN yum install -y pcre-devel wget net-tools gcc zlib zlib-devel make openssl-develRUN useradd -M -s /sbin/nologin nginxRUN tar -zxvf nginx-1.14.0.tar.gzRUN mkdir -p /usr/local/nginxRUN cd nginx-1.14.0 && ./configure --prefix=/usr/local/nginx --user=nginx --group=nginx --with-http_stub_status_module && make && make installRUN ln -s /usr/local/nginx/sbin/* /usr/local/bin/ #EXPOSE 映射端口EXPOSE 80 8080 #CMD 运行以下命令CMD ["nginx", "-g", "daemon off;"]——————————————————————————————————————————————————————————————————————————————————————————————————————
生成自定义镜像
执行:docker build -t ?imagesname:version . ?(.代表Dockerfile 的相对路径)测试 container 服务
#docker run -p 发布端口:容器端口 ?--name 容器名 ?*imagesname:version将新镜像推送到私有仓库
1.docker 注册私有仓库 ?添加/usr/lib/systemd/system/docker.service文件下 ?ExecStart=/usr/bin/dockerd ?--insecure-registry=10.10.10.100 ???2.docker登录私用仓库 (搭建harbor已新建用户名和密码)
#docker login 10.10.10.100 3.tag目标镜像文件
#docker tag ?*oldimagesname ??私用仓库地址/project::version4.推送目标文件
1. #docker push 私有仓库地址/project::version ?????三.启用kubectl ?cli界面 ??????????#mkdir .kube ???????????#touch .kube/config ??????????#vim .kube/config添加kubernetes 命令行配置脚本。
执行脚本:
??????????#curl -LO https://storage.googleapis.com/kubernetes-release/release/$(curl -s https://storage.googleapis.com/kubernetes-release/release/stable.txt)/bin/linux/amd64/kubectl && chmod +x kubectl && cp kubectl /usr/local/binover! 使用kubectl get namespace显示输出,测试命令启用成功。
?????四.在kubernetes集群使用kubectl 命令生成container,运行app生成nginx_deployment.ymal和nginx_service.yaml文件
nginx_deployment.ymal ——————————————————————————————————————————————————————————————————————————————————————————————————————
kind: DeploymentapiVersion: extensions/v1beta1metadata: ?name: nginxspec: ?replicas: 1 ?template: ???metadata: ?????labels: ???????name: nginx ???spec: ?????containers: ?????- name: nginx ???????image: 10.10.10.100/test/nginx:latest ???????ports: ???????- containerPort: 80 ?????????protocol: TCP——————————————————————————————————————————————————————————————————————————————————————————————————————
nginx_service.yaml
——————————————————————————————————————————————————————————————————————————————————————————————————————
kind: ServiceapiVersion: v1metadata: ?name: nginx ?labels: ???name: nginxspec: ?type: NodePort ?ports: ?- protocol: TCP ???nodePort: 31001 ???targetPort: 80 ???port: 80 ?selector: ???name: nginx——————————————————————————————————————————————————————————————————————————————————————————————————————
运行create 命令生成pod和svc
#kubectl create -f nginx_deployment.ymal#kubectl create -f nginx_service.yaml 测试app服务OK ?curl:10.10.10.10:31001#kubectl get pods确认pod的创建结果#kubectl get pods -o wide确认pod所在的noderancher搭建kubernetes集群
原文地址:https://www.cnblogs.com/blablablabla/p/9646269.html