脚本搭建Docker及Kubernetes集群

版权声明:本文为博主原创文章,可以转载,但是请注明出处。脚本搭建Docker及Kubernetes集群_JYCF的博客-CSDN博客

脚本搭建Docker及Kubernetes集群

基础环境配置:

编写:张家豪

搭建方式:Win11、VMware虚拟机

双节点master和node节点部署,node节点可以自己根据需求创建多节点。

在配置完成IP后使用ssh登录,注意,实际比赛中是在openstack上搭建的两台主机,IP在openstack Web中设置过的,如果不是你想要的IP只需要重新分配一个即可。

a) Master节点配置主机名及IP地址,创建hosts映射

#hostnamectl set-hostname master\node

#vim /etc/sysconfig/network-scripts/ifcfg-ensXX

master地址为10.0.0.2,node节点为10.0.0.3

#echo -e “10.0.0.2 master\n10.0.0.3 node” >> /etc/hosts

#scp /etc/hosts 10.0.0.3:/etc/hosts 同步到node节点

建议将IP修改好以后直接上传镜像,因为镜像文件有点大,需要时间。

b) 关闭Selinux和防火墙

#setenforce 0

#sed -i ‘s/SELINUX=enforcing/SELINUX=disabled/g’ /etc/selinux/config

以上两条命令关闭了selinux,第一条是即时生效但重启后会恢复配置文件的设置,所以第二条设置配置文件也为disabled关闭。

#systemctl stop firewalld && systemctl disable firewalld

上面关闭了防火墙并已处理开机自启动

c) 清空iptables规则:

#iptables -F\X\Z 后面三个都分别执行

#/usr/sbin/iptables-save 保存配置

d) 上传镜像挂载并配置YUM源

在secureFX中将Chinaskill Cloud PaaS.iso和centos7 的镜像,实际比赛无需上 传centos,以为实际比赛中controller节点已经有ftp的服务器,只需要修改YUM源ftp://controller/centos,但在虚拟机中我们的controller已经删除了,没有了这台机器,所以我们需要上传的master节点再搭建一次。

#mount -o loop /root/Chinaskill Cloud PaaS.iso /mnt/

#cp -rfv /mnt/* /opt/ 拷贝到opt中用于容器云的yum仓库。

#mkdir /centos 创建一个文件夹用于搭建centos软件仓

#mount -o loop /root/centos7.iso /centos

#vim /etc/fstab 将上面的centos7挂载信息写到fstab中

#mv /etc/yum.repos.d/* /home

#vi /etc/yum.repos.d/k8s.repo

[centos]

name=centos

baseurl=file:///centos

gpgcheck=0

enabled=1

[k8s]

name=k8s

baseurl=file:///opt/kubernetes-repo

gpgcheck=0

enabled=1

:wq

#yum install vsftpd

#echo anon_root=/ >> /etc/vsftpd/vsftpd.conf

#systemctl start vsftpd && systemctl enable vsftpd

以上master节点基本搭建完成,在node 节点中配置yum源即可。

** 执行脚本搭建容器云**

所有脚本在/opt中,现在进入opt目录在执行脚本

a) 安装docker master节点

#./k8s_harbor_install.sh

网页登陆到Harbor仓库(http: //masterIP)

b) 上传镜像

#cd /opt/

#./k8s_image_push.sh

输入仓库地址不加http/https:10.0.0.2

输入镜像仓库用户名:admin

输入镜像仓库用户密码:Harbor12345

您设置的仓库地址为:10.0.0.2,用户名admin,密码XXX

是否确定(Y/N):Y

进入网站查看镜像是否存在。

![img](file:///C:/Users/Administrator/AppData/Local/Microsoft/Windows/Clipboard/HistoryData/%7BEF1CA530-D803-4E55-83DB-96F455AE7013%7D/%7B3F106F33-2C03-4FC6-A83E-801D21265E30%7D/ResourceMap/%7BDE4B27D5-8042-4E51-8148-C83BC07ABE19%7D)

c) 部署kubernetes集群

master节点:

#cd /opt/

#./k8s_master_install.sh

https: //IP:30000 为kubernetes Web界面

使用令牌登录,输入令牌(在执行完k8s_master_install.sh后会出现一个token复制下来)

没有复制到的话可以通过以下命令获取:

# kubectl -n kubernetes-dashboard describe secret $(kubectl -n Kubernetes-dashboard get secret | grep dashboard-admin | awk '{print $1}')

![img](file:///C:/Users/Administrator/AppData/Local/Microsoft/Windows/Clipboard/HistoryData/%7BEF1CA530-D803-4E55-83DB-96F455AE7013%7D/%7B3F106F33-2C03-4FC6-A83E-801D21265E30%7D/ResourceMap/%7B752CFDE2-8E46-465B-8A42-643DDAAC300B%7D)

输入Token后进入Dashboard仪表盘界面

![img](file:///C:/Users/Administrator/AppData/Local/Microsoft/Windows/Clipboard/HistoryData/%7BEF1CA530-D803-4E55-83DB-96F455AE7013%7D/%7B3F106F33-2C03-4FC6-A83E-801D21265E30%7D/ResourceMap/%7BD31E5E9E-DE72-48C1-8845-D7F7581F90B8%7D)

d) node节点加入集群

node节点:

#k8s_node_install.sh

需要将脚本同步到node节点,目录无所谓,执行即可。

以上执行完成后openstack及k8s所有搭建完成

Docker运维简单使用方法

1.搭建wordpress博客系统

a) 需要先拉取镜像文件,点击下方复制按钮获得拉取命令。

#docker pull 192.168.200.10/library/wordpress@sha256:12ffa2afe76dc0854edcf94f4a4e23a2afc02ef8b3a7b87c0351bee40087496a

![img](file:///C:/Users/Administrator/AppData/Local/Microsoft/Windows/Clipboard/HistoryData/%7BEF1CA530-D803-4E55-83DB-96F455AE7013%7D/%7B3F106F33-2C03-4FC6-A83E-801D21265E30%7D/ResourceMap/%7BDF655CA8-2F7E-4B9B-98B9-1149BAF83E9D%7D)

b) 拉取数据库地址,因为博客系统需要在数据库中获取信息。

#docker pull 192.168.200.10/library/mysql@sha256:bfcef110bc3892d329ea483fd3e69fc5162a36f1b9089275c7f8bf64717787c0

![img](file:///C:/Users/Administrator/AppData/Local/Microsoft/Windows/Clipboard/HistoryData/%7BEF1CA530-D803-4E55-83DB-96F455AE7013%7D/%7B3F106F33-2C03-4FC6-A83E-801D21265E30%7D/ResourceMap/%7BBED375E2-70CD-4BFB-A9B8-BFA570B02894%7D)

c) 运行镜像文件

#docker run --name wordpress-mysql -e MYSQL_ROOT_PASSWORD=XXXXXX -d mysql:5.6

--name 后跟名字,给你的数据库赋予一个name,自定义。

-e MYSQL_ROOT_PASSWORD= 设置数据库root用户密码。

-d mysql:5.6 使用数据库:号后是tag版本号,可以在harbor中查看版本号信息。

![img](file:///C:/Users/Administrator/AppData/Local/Microsoft/Windows/Clipboard/HistoryData/%7BEF1CA530-D803-4E55-83DB-96F455AE7013%7D/%7B3F106F33-2C03-4FC6-A83E-801D21265E30%7D/ResourceMap/%7BEC2F6D4D-30B4-4F65-8EA1-EBD5F172197D%7D)

d) 运行wordpress镜像并连接数据库

#docker run --name wordpress --link wordpress-mysql -p 8080:80 -d wordpress

--name 实例名称

--link 链接到数据库

-p 内部端口80,在虚拟机外访问80被harbor占用,也已内部80映射到外部8080端口访问wordpress。

![img](file:///C:/Users/Administrator/AppData/Local/Microsoft/Windows/Clipboard/HistoryData/%7BEF1CA530-D803-4E55-83DB-96F455AE7013%7D/%7B3F106F33-2C03-4FC6-A83E-801D21265E30%7D/ResourceMap/%7B3F43D58E-9695-403A-B58B-ED5A7496E6BE%7D)

e) 在浏览器中使用http://YourIP:8080访问你的博客系统

![img](file:///C:/Users/Administrator/AppData/Local/Microsoft/Windows/Clipboard/HistoryData/%7BEF1CA530-D803-4E55-83DB-96F455AE7013%7D/%7B3F106F33-2C03-4FC6-A83E-801D21265E30%7D/ResourceMap/%7B576A7F2B-6F1C-44EA-89CD-0791980705CE%7D)

f) 链接docker实例

#docker exec -it 实例名称 bash

![img](file:///C:/Users/Administrator/AppData/Local/Microsoft/Windows/Clipboard/HistoryData/%7BEF1CA530-D803-4E55-83DB-96F455AE7013%7D/%7B3F106F33-2C03-4FC6-A83E-801D21265E30%7D/ResourceMap/%7B35F99999-D0D1-4D8D-B64A-213207778FDE%7D)

因为docker是容器虚拟化,在docker的架构中所有实例都是共享一个内核隔离运行,所以mysql和nginx在运行的时候你是找不到/var/www/html以及数据库的配置地址,需要使用命令链接进入数据库,在这里面进行设置和查看。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 我可以为你提供一些建议,首先,你需要在一台服务器上安装Kubernetes,可以使用Kubernetes官方提供的安装脚本。其次,可以使用Kubernetes的dashboard工具来搭建你自己的Kubernetes集群,以及可以在集群中部署应用。最后,你还可以使用Kubernetes的命令行工具来管理你的Kubernetes集群。 ### 回答2: 搭建Kubernetes是一个相对复杂的过程,需要一系列核心组件的安装和配置。以下是搭建Kubernetes的一般步骤: 1. 准备环境:确保拥有足够数量的虚拟机或物理机,并且这些机器之间可以互相通信。可以选择使用虚拟化技术,如Docker等。 2. 安装Docker:在每台机器上安装Docker,这是运行Kubernetes的容器运行时环境。 3. 安装etcd:etcd是一个分布式键值存储数据库,Kubernetes使用它来存储集群的状态信息。在每台机器上安装etcd,并且配置它们之间的通信。 4. 安装kube-apiserver:kube-apiserver是Kubernetes的控制平面组件之一,它提供了API接口供其他组件进行通信。在一台机器上安装kube-apiserver并进行必要的配置。 5. 安装kube-controller-manager和kube-scheduler:这两个组件分别用于管理集群中的节点和调度容器。在一个或多个机器上安装并配置它们。 6. 安装kubelet和kube-proxy:kubelet是运行在每个节点上的Kubernetes代理程序,它负责管理节点上的容器。kube-proxy用于实现服务的负载均衡和代理转发。在每个节点上安装并配置它们。 7. 安装kubectl:kubectl是Kubernetes的命令行工具,用于与集群进行交互和管理。在一台机器上安装kubectl,并配置连接到集群。 8. 运行集群:启动etcd、kube-apiserver、kube-controller-manager、kube-scheduler、kubelet和kube-proxy等组件,使它们开始运行并形成一个工作的Kubernetes集群。 9. 验证集群:使用kubectl命令验证集群的运行状态,例如通过获取节点、创建Pod等操作。 10. 安装网络插件:根据需要选择并安装网络插件,以便Pod之间可以进行通信和互相访问。 以上是一个简要的搭建Kubernetes的步骤,实际过程可能因具体环境和需求的不同而有所差异。在搭建过程中,建议参考Kubernetes官方文档和各种在线教程以获取详细的指导和帮助。 ### 回答3: 搭建Kubernetes需要以下步骤: 1. 配置主机环境:确保每个主机都能够连接到互联网,并保持更新和稳定的网络连接。同时,需要确保主机上的操作系统和软件包是最新的,以避免任何潜在的安全漏洞。 2. 安装DockerKubernetes使用Docker来容器化应用程序。因此,需要在每个主机上安装和配置Docker以支持Kubernetes。 3. 安装Kubernetes控制平面:控制平面负责管理和协调Kubernetes集群中的各个节点。可以通过多种方式安装控制平面,例如kubeadm、Minikube、kubespray等。 4. 配置网络:Kubernetes集群中的各个节点需要能够相互通信。可以使用网络插件(如Flannel、Calico、Weave等)来设置网络。 5. 添加工作节点:将其他主机加入Kubernetes集群作为工作节点。通过运行Kubernetes管理命令和配置文件,将其他主机设置为工作节点,以便它们可以运行和管理容器化的应用程序。 6. 部署应用程序:使用Kubernetes资源对象,如Pod、Deployment、Service等,部署和管理应用程序。通过定义资源对象的配置文件,将应用程序和相关资源提交到Kubernetes集群中进行部署。 7. 监控和调试:配置合适的监控工具,以便实时监视集群的运行状况和应用程序的性能。在部署过程中,及时检查日志以解决任何问题,并调试应用程序的行为。 8. 高可用性和扩展性:进行必要的配置和优化,以确保集群具有高可用性和可扩展性。可以通过设置节点复制、负载均衡和水平扩展等机制来实现高可用性和可扩展性。 总结起来,搭建Kubernetes需要配置主机环境、安装DockerKubernetes控制平面、配置网络、添加工作节点、部署应用程序,并进行监控、调试和优化。这些步骤将帮助您成功地搭建和管理Kubernetes集群。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值