问小白 wenxiaobai
资讯
历史
科技
环境与自然
成长
游戏
财经
文学与艺术
美食
健康
家居
文化
情感
汽车
三农
军事
旅行
运动
教育
生活
星座命理

Docker和K8S(Kubernetes)集群容器化部署

创作时间:
作者:
@小白创作中心

Docker和K8S(Kubernetes)集群容器化部署

引用
CSDN
1.
https://blog.csdn.net/IT_WEH_coder/article/details/142063897

Docker和Kubernetes(简称K8s)都是目前非常流行的容器化技术。Docker用于创建和管理容器,而Kubernetes则用于管理容器化应用程序的部署扩展和管理

下面是将Docker和K8s结合使用进行集群容器化部署:

1. 安装并配置Docker【Linux系统 --CenterOS虚拟镜像】

在每个集群节点上安装Docker并进行必要的配置,包括设置镜像加速器和配置Docker守护程序的网络。

#执行命令,安装yum-config-manager
yum install -y yum-utils
#下载docker-ce.repo镜像
yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
#更新yum软件包索引
yum makecache fast
#安装DOCKER CE
yum -y install docker-ce docker-ce-cli containerd.io
#启动docker
systemctl start docker

镜像加速器

cd /etc/docker/
vi daemon.json
{
 "registry-mirrors":["https://gxeo3yz7.mirror.aliyuncs.com"]
}
#查看该文件
cat daemon.json
#重启daemon-reload
sudo systemctl daemon-reload
#重启docker
sudo systemctl restart docker

2. 创建Docker镜像

使用Dockerfile定义应用程序的环境和依赖,并通过Docker构建命令创建Docker镜像。

FROM openjdk:8-jdk-alpine
VOLUME /tmp
ADD target/spring-boot-application.jar app.jar
EXPOSE 8080
ENTRYPOINT ["java","-Djava.security.egd=file:/dev/./urandom","-jar","/app.jar"]

构建Docker镜像:

docker build -t my-spring-boot-app .

3. 将镜像推送到镜像仓库

将Docker镜像推送到可由Kubernetes访问的镜像仓库,如Docker Hub或私有镜像仓库。

4. 配置Kubernetes集群

在集群的每个节点上安装和配置Kubernetes控制平面和工作节点组件。

5. 创建Kubernetes部署文件

使用Kubernetes的配置文件(Deployment)定义应用程序的部署规范,包括副本数量、容器端口等。

deployment.yml部署文件

apiVersion: apps/v1
kind: Deployment
metadata:
  name: my-spring-boot-app
spec:
  replicas: 2
  selector:
    matchLabels:
      app: my-spring-boot-app
  template:
    metadata:
      labels:
        app: my-spring-boot-app
    spec:
      containers:
- name: my-spring-boot-app
        image: my-spring-boot-app:latest
        ports:
- containerPort: 8080

创建Service配置文件 service.yaml 以使应用程序可以从集群外部访问:

apiVersion: v1
kind: Service
metadata:
  name: my-spring-boot-app-service
spec:
  selector:
    app: my-spring-boot-app
  ports:
- protocol: TCP
      port: 80
      targetPort: 8080
  type: LoadBalancer

6. 部署应用程序

使用kubectl命令或Kubernetes控制台将应用程序部署到Kubernetes集群。

kubectl apply -f deployment.yml
kubectl apply -f service.yml

7. 监控和管理应用程序

使用Kubernetes的监控和管理工具,如Kubectl、Kubernetes Dashboard等,来监控和管理应用程序的运行状态。

【10个 Kubernetes 监控工具】链接:https://cloud.tencent.com/developer/article/2314987

推荐使用grafana 监控【链接:https://grafana.com/】

8. 扩展应用程序

通过修改Kubernetes部署文件中的副本数量或使用自动扩展配置,来实现应用程序的水平扩展。

9. 更新应用程序

通过修改Kubernetes部署文件中的镜像版本或使用滚动更新策略,来更新已部署应用程序。

10. 进行故障恢复和容错

Kubernetes提供了故障恢复和容错机制,如自动重启失败的容器、在不同节点之间重新调度容器等。

辅助工具k8s的可视化界面【 Kubernetes 多集群管理】

总之,将Docker和Kubernetes结合使用,可以实现容器化部署和管理应用程序的便捷性、弹性伸缩性和高可用性。

© 2023 北京元石科技有限公司 ◎ 京公网安备 11010802042949号