-
服务器配置节点(华为云服务器)配置master2vCPUs | 4GiB | s6.large.2 CentOS 7.8 64bitnode12vCPUs | 8GiB | s6.large.4 CentOS 7.8 64bitnode22vCPUs | 8GiB | s6.large.4 CentOS 7.8 64bit1.master节点安装脚本:install_k8s_master.sh。sh文件上传到服务器后执行:chmod +x install_k8s_master.sh sh install_k8s_master.sh安装过程中会有根据提示要求键盘输入。安装docker过程中遇到卡着需要输入y,有两次#!/bin/bash# Kubernetes部署环境要求:#(1)一台或多台机器,操作系统CentOS 7.x-86_x64#(2)硬件配置:内存2GB或2G+,CPU 2核或CPU 2核+;#(3)集群内各个机器之间能相互通信;#(4)集群内各个机器可以访问外网,需要拉取镜像;#(5)禁止swap分区; # 安装步骤#1. 安装docker#1.1 如果没有安装docker,则安装docker。会附带安装一个docker-compose##2. 安装k8s#2.1 初始化环境#2.2 添加安装源#2.3 安装kubelet、kubectl、kubeadmin#2.4 安装master#2.5 安装网络插件 set -e # 安装日志install_log=/var/log/install_k8s.logtm=$(date +'%Y%m%d %T') # 日志颜色COLOR_G="\x1b[0;32m" # greenRESET="\x1b[0m" function info(){ echo -e "${COLOR_G}[$tm] [Info] ${1}${RESET}"} function run_cmd(){ sh -c "$1 | $(tee -a "$install_log")"} function run_function(){ $1 | tee -a "$install_log"} function install_docker(){ info "1.使用脚本自动安装docker..." wget -O /etc/yum.repos.d/CentOS-Base.repo https://repo.huaweicloud.com/repository/conf/CentOS-7-reg.repo yum install -y yum-utils device-mapper-persistent-data lvm2 yum-config-manager --add-repo https://sandbox-expriment-files.obs.cn-north-1.myhuaweicloud.com:443/use-framework-upgrade/docker-ce.repo yum install docker-ce info "2.启动 Docker CE..." sudo systemctl enable docker sudo systemctl start docker info "3.添加镜像加速器..." if [ ! -f "/etc/docker/daemon.json" ];then touch /etc/docker/daemon.json fi cat <<EOF > /etc/docker/daemon.json{ "registry-mirrors": [ "https://5ajk0rns.mirror.aliyuncs.com" ]}EOF info "4.重新启动服务..." sudo systemctl daemon-reload sudo systemctl restart docker info "5.测试 Docker 是否安装正确..." docker run hello-world info "6.检测..." docker info read -p "是否安装docker-compose?默认为 no. Enter [yes/no]:" is_compose if [[ "$is_compose" == 'yes' ]];then info "7.安装docker-compose" sudo curl -L "https://github.com/docker/compose/releases/download/1.27.4/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose sudo chmod a+x /usr/local/bin/docker-compose # 8.验证是否安装成功 info "8.验证docker-compose是否安装成功..." docker-compose -v fi} function install_k8s() { info "初始化k8s部署环境..." init_env info "添加k8s安装源..." add_aliyun_repo info "安装kubelet kubeadmin kubectl..." install_kubelet_kubeadmin_kubectl info "安装kubernetes master..." yum -y install net-tools if [[ ! "$(ps aux | grep 'kubernetes' | grep -v 'grep')" ]];then kubeadmin_init else info "kubernetes master已经安装..." fi info "安装网络插件flannel..." install_flannel info "去污点..." kubectl taint nodes --all node-role.kubernetes.io/master-} # 初始化部署环境function init_env() { info "关闭防火墙" systemctl stop firewalld systemctl disable firewalld info "关闭selinux" sed -i 's/^SELINUX=enforcing$/SELINUX=disabled/g' /etc/selinux/config source /etc/selinux/config info "关闭swap(k8s禁止虚拟内存以提高性能)" swapoff -a sed -i '/swap/s/^\(.*\)$/#\1/g' /etc/fstab info "设置网桥参数" cat <<-EOF > /etc/sysctl.d/k8s.confnet.bridge.bridge-nf-call-ip6tables = 1net.bridge.bridge-nf-call-iptables = 1EOF sysctl --system #生效 sysctl -w net.ipv4.ip_forward=1 info "时间同步" yum install ntpdate -y ntpdate time.windows.com} # 添加aliyun安装源function add_aliyun_repo() { cat > /etc/yum.repos.d/kubernetes.repo <<- EOF[kubernetes]name=Kubernetesbaseurl=https://mirrors.aliyun.com/kubernetes/yum/repos/kubernetes-el7-x86_64enabled=1gpgcheck=0repo_gpgcheck=0gpgkey=https://mirrors.aliyun.com/kubernetes/yum/doc/yum-key.gpg https://mirrors.aliyun.com/kubernetes/yum/doc/rpm-package-key.gpgEOF} function install_kubelet_kubeadmin_kubectl() { yum install kubelet-1.19.4 kubeadm-1.19.4 kubectl-1.19.4 -y systemctl enable kubelet.service info "确认kubelet kubeadmin kubectl是否安装成功" yum list installed | grep kubelet yum list installed | grep kubeadm yum list installed | grep kubectl kubelet --version} function kubeadmin_init() { sleep 1 read -p "请输入master ip地址:" ip kubeadm init --apiserver-advertise-address="${ip}" --image-repository registry.aliyuncs.com/google_containers --kubernetes-version v1.19.4 --service-cidr=10.96.0.0/12 --pod-network-cidr=10.244.0.0/16 mkdir -p "$HOME"/.kube sudo cp -i /etc/kubernetes/admin.conf "$HOME"/.kube/config sudo chown "$(id -u)":"$(id -g)" "$HOME"/.kube/config} function install_flannel() { yum -y install wget wget https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.yml kubectl apply -f kube-flannel.yml} # 安装dockerread -p "是否安装docker?默认为:no. Enter [yes/no]:" is_dockerif [[ "$is_docker" == 'yes' ]];then run_function "install_docker"fi # 安装k8sread -p "是否安装k8s?默认为:no. Enter [yes/no]:" is_k8sif [[ "$is_k8s" == 'yes' ]];then run_function "install_k8s"fi2.node节点安装脚本:install_k8s_node.sh#!/bin/bash# Kubernetes部署环境要求:#(1)一台或多台机器,操作系统CentOS 7.x-86_x64#(2)硬件配置:内存2GB或2G+,CPU 2核或CPU 2核+;#(3)集群内各个机器之间能相互通信;#(4)集群内各个机器可以访问外网,需要拉取镜像;#(5)禁止swap分区; # 安装步骤#1. 安装docker#1.1 如果没有安装docker,则安装docker。会附带安装一个docker-compose##2. 安装k8s#2.1 初始化环境#2.2 添加安装源#2.3 安装kubelet、kubectl、kubeadmin#2.4 安装master#2.5 安装网络插件 set -e # 安装日志install_log=/var/log/install_k8s.logtm=$(date +'%Y%m%d %T') # 日志颜色COLOR_G="\x1b[0;32m" # greenRESET="\x1b[0m" function info(){ echo -e "${COLOR_G}[$tm] [Info] ${1}${RESET}"} function run_cmd(){ sh -c "$1 | $(tee -a "$install_log")"} function run_function(){ $1 | tee -a "$install_log"} function install_docker(){ info "1.使用脚本自动安装docker..." wget -O /etc/yum.repos.d/CentOS-Base.repo https://repo.huaweicloud.com/repository/conf/CentOS-7-reg.repo yum install -y yum-utils device-mapper-persistent-data lvm2 yum-config-manager --add-repo https://sandbox-expriment-files.obs.cn-north-1.myhuaweicloud.com:443/use-framework-upgrade/docker-ce.repo yum install docker-ce info "2.启动 Docker CE..." sudo systemctl enable docker sudo systemctl start docker info "3.添加镜像加速器..." if [ ! -f "/etc/docker/daemon.json" ];then touch /etc/docker/daemon.json fi cat <<EOF > /etc/docker/daemon.json{ "registry-mirrors": [ "https://5ajk0rns.mirror.aliyuncs.com" ]}EOF info "4.重新启动服务..." sudo systemctl daemon-reload sudo systemctl restart docker info "5.测试 Docker 是否安装正确..." docker run hello-world info "6.检测..." docker info read -p "是否安装docker-compose?默认为 no. Enter [yes/no]:" is_compose if [[ "$is_compose" == 'yes' ]];then info "7.安装docker-compose" sudo curl -L "https://github.com/docker/compose/releases/download/1.27.4/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose sudo chmod a+x /usr/local/bin/docker-compose # 8.验证是否安装成功 info "8.验证docker-compose是否安装成功..." docker-compose -v fi} function install_k8s() { info "初始化k8s部署环境..." init_env info "添加k8s安装源..." add_aliyun_repo info "安装kubelet kubeadmin kubectl..." install_kubelet_kubeadmin_kubectl} # 初始化部署环境function init_env() { info "关闭防火墙" systemctl stop firewalld systemctl disable firewalld info "关闭selinux" sed -i 's/^SELINUX=enforcing$/SELINUX=disabled/g' /etc/selinux/config source /etc/selinux/config info "关闭swap(k8s禁止虚拟内存以提高性能)" swapoff -a sed -i '/swap/s/^\(.*\)$/#\1/g' /etc/fstab info "设置网桥参数" cat <<-EOF > /etc/sysctl.d/k8s.confnet.bridge.bridge-nf-call-ip6tables = 1net.bridge.bridge-nf-call-iptables = 1EOF sysctl --system #生效 sysctl -w net.ipv4.ip_forward=1 info "时间同步" yum install ntpdate -y ntpdate time.windows.com} # 添加aliyun安装源function add_aliyun_repo() { cat > /etc/yum.repos.d/kubernetes.repo <<- EOF[kubernetes]name=Kubernetesbaseurl=https://mirrors.aliyun.com/kubernetes/yum/repos/kubernetes-el7-x86_64enabled=1gpgcheck=0repo_gpgcheck=0gpgkey=https://mirrors.aliyun.com/kubernetes/yum/doc/yum-key.gpg https://mirrors.aliyun.com/kubernetes/yum/doc/rpm-package-key.gpgEOF} function install_kubelet_kubeadmin_kubectl() { yum install kubelet-1.19.4 kubeadm-1.19.4 kubectl-1.19.4 -y systemctl enable kubelet.service info "确认kubelet kubeadmin kubectl是否安装成功" yum list installed | grep kubelet yum list installed | grep kubeadm yum list installed | grep kubectl kubelet --version} function kubeadmin_init() { sleep 1 read -p "请输入master ip地址:" ip kubeadm init --apiserver-advertise-address="${ip}" --image-repository registry.aliyuncs.com/google_containers --kubernetes-version v1.19.4 --service-cidr=10.96.0.0/12 --pod-network-cidr=10.244.0.0/16 mkdir -p "$HOME"/.kube sudo cp -i /etc/kubernetes/admin.conf "$HOME"/.kube/config sudo chown "$(id -u)":"$(id -g)" "$HOME"/.kube/config} function install_flannel() { yum -y install wget wget https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.yml kubectl apply -f kube-flannel.yml} # 安装dockerread -p "是否安装docker?默认为:no. Enter [yes/no]:" is_dockerif [[ "$is_docker" == 'yes' ]];then run_function "install_docker"fi # 安装k8sread -p "是否安装k8s?默认为:no. Enter [yes/no]:" is_k8sif [[ "$is_k8s" == 'yes' ]];then run_function "install_k8s"fi3.安装完成master节点后会提示加入节点的命令类似这样[addons] Applied essential addon: kube-proxy Your Kubernetes control-plane has initialized successfully! To start using your cluster, you need to run the following as a regular user: mkdir -p $HOME/.kube sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config sudo chown $(id -u):$(id -g) $HOME/.kube/config You should now deploy a pod network to the cluster.Run "kubectl apply -f [podnetwork].yaml" with one of the options listed at: https://kubernetes.io/docs/concepts/cluster-administration/addons/ Then you can join any number of worker nodes by running the following on each as root: kubeadm join 192.168.0.174:6443 --token 861suk.4xhcuycoev4rh6dm \ --discovery-token-ca-cert-hash sha256:3fabddc90d0966bef569865236913b93fe12ee2429f957718f2485447564 [20230508 13:48:36] [Info] 安装网络插件flannel...在各个node节点上执行命令即可kubeadm join 192.168.0.174:6443 --token 861suk.4xhcuycoev4rh6dm \ --discovery-token-ca-cert-hash sha256:3fabddc90d0966bef569865236913b93fe12ee2429f957718f2485447564 安装验证 验证docker是否安装成功docker -v 验证docker-compose是否安装成功docker-compose -v 验证k8s是否安装成功kubectl get nodes 脚本中已经做了去污点[通过kubeadmin部署k8s,默认master上是不能被调度pod的,去污点就是在master上也可以被调度pod] 等待一会后,再通过kubectl get nodes查看,master状态已经正常了
-
我在尝试部署KubeEdge框架在部署K8s使用 kubeadm init语句初始化集群时遇到了问题使用的Ubuntu版本为18.04Docker版本为18.06.3Kubernetes版本为1.17.4遇到的如下的报错起先是卡在这个位置按照网络上的教学修改了kubelet与Docker的驱动程序改为systemd然后就出现了上面那张图的报错求教错误原因与解决的方案
上滑加载中
推荐直播
-
华为云码道 × 仓颉编程:工程化AI编码探索2026/05/27 周三 19:00-21:00
刘俊杰-华为云仓颉语言专家/李炎-华为云码道技术专家/王智鹏-OpenCangjie开源社区发起人
本场直播围绕华为云仓颉语言与华为云码道的深度结合,展示华为云智能编程从零基础到高效落地的完整生态能力。以华为云码道为引擎,仓颉语言为载体,带给大家日常提效、趣味创新到极速量产的开发体验。
即将直播
热门标签