ITPub博客

首页 > 数据库 > 数据库开发技术 > Kubernetes自动化部署脚本

Kubernetes自动化部署脚本

原创 数据库开发技术 作者:运维book思议 时间:2023-04-20 17:28:01 0 删除 编辑

先放个链接,万一有人关注呢

优质文章推荐

↓ ↓ ↓ ↓ ↓

Linux系统初始化脚本

能够监控100台服务器的磁盘利用率的脚本——16行代码实现

Linux系统初始化脚本之二

Linux系统巡检脚本——快速获取当前系统信息

Linux远程执行脚本——Python运维脚本

哪个Linux发行版会成为CentOS的平替?

应用介绍

Kubernetes(简称k8s)是一个开源的容器编排引擎,用于自动化部署、扩展和管理容器化应用程序。它最初由Google设计,现在由Cloud Native Computing Foundation(CNCF)管理。在k8s的帮助下,用户可以轻松地管理跨多个主机的容器化应用程序。

k8s的特点如下:

1、自动化部署:k8s通过定义YAML文件,描述应用程序的部署和运行所需的资源,然后自动创建和配置这些资源,从而简化了应用程序的部署。

2、自动化扩展:k8s可以根据应用程序的负载情况自动增加或减少容器的数量,以满足应用程序的需求,从而保持应用程序的高可用性和可扩展性。

3、自我修复:k8s可以监控应用程序的运行状况,并在发生故障时自动重启或替换容器,从而确保应用程序的高可用性。

4、跨平台支持:k8s支持在多种云平台和物理服务器上运行,使得用户可以轻松地在不同的平台上部署和管理应用程序。

5、插件化架构:k8s采用插件化架构,使得用户可以轻松地扩展和定制其功能,以适应不同的应用场景。

k8s的应用场景包括:

1、云原生应用程序:k8s是云原生应用程序的理想选择,它可以方便地在云平台上部署和管理应用程序。

2、微服务架构:k8s可以自动化地管理容器,并将它们组织成微服务应用程序,从而使得应用程序的部署和维护更加容易。

3、大规模应用程序:k8s可以自动化地扩展和管理应用程序,从而使得应用程序可以在大规模的集群上运行。

4、持续集成和持续部署:k8s可以通过自动化部署和扩展,帮助用户实现持续集成和持续部署,从而提高应用程序的交付速度和质量。

项目实施
以下是一个在3个Ubuntu节点使用阿里源部署k8s的脚本,假设3个节点IP分别为192.168.0.1、192.168.0.2、192.168.0.3。
#!/bin/bash
# 添加阿里源curl https://mirrors.aliyun.com/kubernetes/apt/doc/apt-key.gpg | apt-key add -cat <<EOF >/etc/apt/sources.list.d/kubernetes.listdeb https://mirrors.aliyun.com/kubernetes/apt/ kubernetes-xenial mainEOFapt-get update
# 安装Dockerapt-get install -y docker.io
# 设置Docker开机自启systemctl enable docker
# 安装kubeadm, kubelet和kubectlapt-get install -y kubelet kubeadm kubectl
# 加载kubelet模块modprobe br_netfilter
# 配置sysctl参数cat <<EOF >/etc/sysctl.d/k8s.confnet.bridge.bridge-nf-call-ip6tables = 1net.bridge.bridge-nf-call-iptables = 1EOFsysctl --system
# 关闭swap分区swapoff -ased -i '/ swap / s/^/#/' /etc/fstab
# 初始化master节点kubeadm init --pod-network-cidr=10.244.0.0/16 --apiserver-advertise-address=192.168.0.1
# 安装网络插件kubectl apply -f https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.yml
# 将master节点的kubeconfig文件复制到普通用户目录下mkdir -p $HOME/.kubecp -i /etc/kubernetes/admin.conf $HOME/.kube/configchown $(id -u):$(id -g) $HOME/.kube/config
# 获取token和CA证书hashjoin_cmd=$(kubeadm token create --print-join-command)ca_hash=$(openssl x509 -in /etc/kubernetes/pki/ca.crt -noout -pubkey | openssl rsa -pubin -outform der 2>/dev/null | openssl dgst -sha256 -hex | sed 's/^.* //')
# 将node加入集群sshpass -p "password" ssh root@192.168.0.2 "$join_cmd --discovery-token-ca-cert-hash sha256:$ca_hash"sshpass -p "password" ssh root@192.168.0.3 "$join_cmd --discovery-token-ca-cert-hash sha256:$ca_hash"

注意事项:

1、在执行脚本之前,需要在每个节点上配置好SSH免密登录;

2、脚本中的join_cmd命令需要在初始化master节点之后执行,可以将该命令放在脚本最后;

3、在脚本中需要将join_cmd命令的占位符password替换为实际的SSH密码;

4、该脚本中的CIDR地址为flannel网络插件的默认CIDR地址,如果使用其他网络插件需要相应更改CIDR地址。

服务器的ip地址>
结束!

如有不足之处,欢迎指正!

谢谢你这么好看还关注我



原文作者:运维book思议;如有侵权,请联系管理员删除。

下一篇: Prometheus部署实战
请登录后发表评论 登录
全部评论

注册时间:2022-09-24

  • 博文量
    333
  • 访问量
    215209