k8s快速上手1-原理与实践准备

网友投稿 273 2022-10-18

k8s快速上手1-原理与实践准备

kubernetes:简称k8s,是管理Docker集群的工具

核心:

master:管理节点node:计算节点image:镜像仓库

master由以下4个服务组成:

Api server:统一管理接口是整个系统的对外接口,供客户端和其它组件调用,相当"于营业厅"scheduler:调度器负责对集群内部的资源进行调度,相当于"调度室"controller manager:大总管负责管理控制器,相当于 "大总管"etcd:键值数据库(数据存储节点)是一个键值存储数据库,存储集群的状态

node节点也是由4部分组成:

docker:node节点的容器容器管理工具kubelet:node节点的控制服务主要负责监视指派到它所在的Pod对象,包括创建,修改,监控,删除等kube-proxy:代理主要负责为Pod对象提供代理其它附加服务Pod:master发来一个指令给kubelet,kubelet收到指令后回创建一个Pod组(组里可以放多个容器)

准备实验用到的机器:

在node1,node2,node3中安装docker并设置可以使用私有仓库

在repo中安装私有仓库

主机名 ip地址 角色 备注m01_Master 10.0.0.61 kube-master 管理节点web01_Node1 10.0.0.7 kube-node 计算节点web02_Node2 10.0.0.8 kube-node 计算节点lb01_Node3 10.0.0.5 kub-node 计算节点nfs_Repo 10.0.0.31

步骤:

1修改所有的主机名(方便练习)

[root@m01 ~]#hostnamectl set-hostname m01_Master[root@web01 ~]#hostnamectl set-hostname web01_Node1[root@web02 ~]#hostnamectl set-hostname web02_Node2[root@lb01 ~]#hostnamectl set-hostname lb01_Node3[root@nfs01 ~]#hostnamectl set-hostname nfs_Repo

2在处理master之外的所有主机中安装docker,下面仅以node3为例:

1)安装docker

#安装依赖:yum install -y yum-utils device-mapper-persistent-data lvm2#添加yum源yum-config-manager --add-repo install docker-ce docker-ce-cli containerd.io --allowerasing#启动并设置开机启动systemctl start dockersystemctl enable docker#验证安装是否成功docker version

2)开启路由转发(目的是让docker和其它的容器可以互相通信)

#开启路由转发[root@lb01_Node3 ~]#vim /etc/sysctl.conf[root@lb01_Node3 ~]#tail -1 /etc/sysctl.confnet.ipv4.ip_forward=1#让命令生效:[root@lb01_Node3 ~]#sysctl -pnet.ipv4.ip_forward = 1#重启docker

3)修改docker启动文件,将通讯规则设置成允许

[root@lb01_Node3 ~]#vim /usr/lib/systemd/system/docker.service[Service]....ExecStartPost=/sbin/iptables -P FORWARD ACCEPTExecReload=/bin/kill -s HUP $MAINPID

4)重新加载docker配置文件:

[root@lb01_Node3 ~]#systemctl daemon-reload[root@web01 ~]#systemctl restart docker

5)验证:

[root@lb01_Node3 ~]#ifconfig

6)卸载防火墙:

[root@lb01_Node3 ~]#yum remove firewalld-*

3在repo中搭建私有仓库

1)拉取镜像

[root@nfs_Repo ~]#docker pull registry

2)在服务器nfs_Repo上运行docker私有仓库镜像,创建容器my-registry。

#启动容器docker run -d -p 5000:5000 --restart=always --name my-registry \-v /registry:/registry \-e REGISTRY_STORAGE_DELETE_ENABLED=true \-e REGISTRY_HTTP_ADDR=0.0.0.0:5000 \registry:latest#查看仓库内容:[root@nfs_Repo ~]#curl ~]#cat /etc/docker/daemon.json{"registry-mirrors": [ "],"insecure-registries": ["10.0.0.31:5000"]}[root@m01_Master ~]#systemctl restart docker

4.2给镜像打新标签并将新镜像上传至仓库

[root@m01_Master ~]#docker tag registry:latest 10.0.0.31:5000/registrytest[root@m01_Master ~]#docker imagesREPOSITORY TAG IMAGE ID CREATED SIZE10.0.0.31:5000/registrytest latest b8604a3fe854 7 weeks ago 26.2MBregistry latest b8604a3fe854 7 weeks ago 26.2MB[root@m01_Master ~]#docker push 10.0.0.31:5000/registrytestUsing default tag: latestThe push refers to repository [10.0.0.31:5000/registrytest]aeccf26589a7: Pushed f640be0d5aad: Pushed aa4330046b37: Pushed ad10b481abe7: Pushed 69715584ec78: Pushed latest: digest: sha256:36cb5b157911061fb610d8884dc09e0b0300a767a350563cbfd88b4b85324ce4 size: 1363[root@m01_Master ~]#curl ~]#vim /etc/docker/daemon.json{ "registry-mirrors": [ "], "insecure-registries": ["10.0.0.31:5000"]}#重启docker[root@web01_Node1 ~]#systemctl restart docker#拉取镜像测试[root@web01_Node1 ~]#docker pull 10.0.0.31:5000/registrytestUsing default tag: latestlatest: Pulling from registrytestDigest: sha256:36cb5b157911061fb610d8884dc09e0b0300a767a350563cbfd88b4b85324ce4Status: Downloaded newer image for 10.0.0.31:5000/registrytest:latest10.0.0.31:5000/registrytest:latest#查看镜像[root@web01_Node1 ~]#docker imagesREPOSITORY TAG IMAGE ID CREATED SIZE10.0.0.31:5000/registrytest latest b8604a3fe854 7 weeks ago 26.2MB[root@web01_Node1 ~]

四,在服务端配置镜像仓库管理web界面

1下载web界面管理工具docker-registry-web镜像

[root@m01_Master ~]#docker pull hyper/docker-registry-web[root@m01_Master ~]#docker imagesREPOSITORY TAG IMAGE ID CREATED SIZEhyper/docker-registry-web latest 0db5683824d8 5

2设置私有仓库只读参数为false,创建启动容器registry-web

docker run -itd -p 8080:8080 --restart=always --name registry_web --link my-registry \-e REGISTRY_URL=\-e REGISTRY_NAME=10.0.0.31:5000 \-e REGISTRY_READONLY=false \hyper/docker-registry-web:latest

3查看配置文件是否配置了私有仓的ip和端口

[root@nfs_Repo ~]#cat /etc/docker/daemon.json{ "registry-mirrors": [ "], "insecure-registries": ["10.0.0.31:5000"]}

4重启docker后访问网址​​http://10.0.0.31:8080/​​

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:【docker专栏6】详解docker容器状态转换管理命令
下一篇:SpringBoot使用Mybatis注解实现分页动态sql开发教程
相关文章

 发表评论

暂时没有评论,来抢沙发吧~