rancher2.5.4 + k8s 实操部署应用

/ 运维 / 没有评论 / 350浏览

比较不错的网络视频教学地址:https://www.youtube.com/playlist?list=PLmOn9nNkQxJFiWd13kMX4w5ebum1AFJpv

一.部署rancher

1.我这里使用的是最简单的docker部署单机版rancher:v2.5.4

docker run -d --restart=unless-stopped   -p 9090:80 -p 9443:443   --privileged   rancher/rancher:v2.5.4

部署好以后.本地环境会自动多出一个k3s环境(精简版的k8s)

2.部署k8s集群

(1)新建k8s集群,复制内容去部署master节点: 其他node节点不需要选择 Etcd 角色、一个 Control 角色; 以下是新建好的k8s-master主机:

二.部署docker镜像私有仓库registry

1.同样使用docker进行部署

先设置密码,需要使用到htpasswd命令,我是ubuntu,安装工具:

apt install apache2-utils

生成密码:

htpasswd  -Bbn 账号 密码 >/opt/docker/registry/htpasswd

带密码模式启动命令:

docker run -d -p 5000:5000 -v /opt/docker/registry/:/auth/ -v /opt/registry:/var/lib/registry  --name register-auth -e "REGISTRY_AUTH=htpasswd" -e "REGISTRY_AUTH_HTPASSWD_REALM=Registry Realm" -e "REGISTRY_AUTH_HTPASSWD_PATH=/auth/htpasswd" registry

2.本地docker设置可以通过非https登录访问

本地:

{
    "insecure-registries": ["本地局域网ip:5000"]
}

远程主机访问registry仓库:

{
    "insecure-registries": ["公网ip:5000"]
}

三.部署应用

1.直接部署一个nginx,从dockerhub下载镜像

访问172.17.0.2:30001即可;

2.部署自定义应用镜像

(1)先编写应用的Dockerfile:
Dockerfile:

FROM openjdk:8-jdk-alpine
MAINTAINER xiaogao
ADD web.jar web.jar
ENTRYPOINT ["java","-Djava.security.egd=file:/dev/./urandom","-jar","/web.jar"]

(2)构建镜像:

docker build -t 172.17.0.1/web . #通过当前目录下的Dockerfile构建,并打标签
docker build -f /opt/docker/Dockerfile .  #指定目录

(3)推送镜像到私有仓库:

docker push 172.17.0.1/web 

(4)部署工作负载,开放随机主机端口(NodePort):

(5)报错拉取镜像缺少验证 新增镜像仓库验证密码,使用命令行输入:

kubectl create secret docker-registry default --docker-server=172.17.0.1:5000 --docker-username=gaoyang --docker-password=12345 --docker-email="test@qq.com" --namespace=default

(6)部署成功,访问172.17.0.1:30470即可访问服务:

注意

1.rancher使用非443接口访问:

如容器内的80端口映射到外面是8xxx,则访问后会自动跳转到8443; 所以避免该问题,可以改为将容器内端口443映射到x443;

  docker run -d --restart=unless-stopped \
  -p 9090:80 -p 9443:443 \
  --privileged \
  rancher/rancher:v2.5.4

2.rancher-k3s使用私有镜像仓库

https://docs.rancher.cn/docs/k3s/installation/private-registry/_index/