首页 > 数据库 > 数据库开发技术 > Kubernetes自动化部署脚本
先放个链接,万一有人关注呢
↓ ↓ ↓ ↓ ↓
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可以通过自动化部署和扩展,帮助用户实现持续集成和持续部署,从而提高应用程序的交付速度和质量。
# 添加阿里源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地址。
如有不足之处,欢迎指正!
谢谢你这么好看还关注我

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