当前位置:首页 > Web开发 > 正文

直到所有的容器组处于 Running 状态 watch kubectl get pod -n kube-system -

2024-03-31 Web开发

安置环境:centos7.7+kubernetes 1.17.2+calico 3.12.0

1、虚拟机新建三个节点,并改削主机名和设置固定ip

#设置主机名(三台机器操纵一样,只是对应IP不一样) hostnamectl set-hostname k8s-master echo "192.168.2.130 $(hostname)" >> /etc/hosts #设置固定IP vi /etc/sysconfig/network-scripts/ifcfg-ens33 #变动后的内容: TYPE=Ethernet PROXY_METHOD=none BROWSER_ONLY=no BOOTPROTO=static #dhcp改为static DEFROUTE=yes IPV4_FAILURE_FATAL=no IPV6INIT=yes IPV6_AUTOCONF=yes IPV6_DEFROUTE=yes IPV6_FAILURE_FATAL=no IPV6_ADDR_GEN_MODE=stable-privacy DEVICE=eno1 NAME=eno1 UUID=3088fb60-91da-4256-9f37-527f51a64e9a NM_CONTROLLED=no #暗示该接口将通过该配置文件进行设置,而不是通过网络打点器进行打点 ONBOOT=yes #开机启动 IPADDR=192.168.2.130 #本机地点 NETMASK=255.255.255.0 #子网掩码 GATEWAY=192.168.2.2 #默认网关
#改削network
vi /etc/sysconfig/network

NETWORKING=yes
  GATEWAY=192.168.2.2
  DNS1=192.168.2.2

#重启处事

service network restart

2、安置docker及kubelet

# 在 master 节点和 worker 节点都要执行 # 最后一个参数 1.17.2 用于指定 kubenetes 版本,撑持所有 1.17.x 版本的安置 curl -sSL https://kuboard.cn/install-script/v1.17.x/install_kubelet.sh | sh -s 1.17.2

#为使镜像能正常下载,设置docker加速器(该法式很重要) vi /etc/docker/daemon.json {"registry-mirrors": ["https://registry.cn-hangzhou.aliyuncs.com","https://quay-mirror.qiniu.com/","https://registry.docker-cn.com","https://registry.docker-cn.com","","https://docker.mirrors.ustc.edu.cn"]}

3、初始化Master

# 只在 master 节点执行 # 替换 x.x.x.x 为 master 节点的内网IP # export 命令只在当前 shell 会话中有效,开启新的 shell 窗口后,,如果要继续安置过程,请从头执行此处的 export 命令 export MASTER_IP=192.168.2.130 # 替换 apiserver.demo 为 您想要的 dnsName export APISERVER_NAME=apiserver.demo # Kubernetes 容器组地址的网段,该网段安置完成后,由 kubernetes 创建,事先并不存在于您的物理网络中 export POD_SUBNET=192.168.0.0/16 echo "${MASTER_IP} ${APISERVER_NAME}" >> /etc/hosts

if [ ${#POD_SUBNET} -eq 0 ] || [ ${#APISERVER_NAME} -eq 0 ]; then echo -e "\033[31;1m请确保您已经设置了环境变量 POD_SUBNET 和 APISERVER_NAME \033[0m" echo 当前POD_SUBNET=$POD_SUBNET echo 当前APISERVER_NAME=$APISERVER_NAME exit 1 fi # 检察完整配置选项 https://godoc.org/k8s.io/kubernetes/cmd/kubeadm/app/apis/kubeadm/v1beta2 rm -f ./kubeadm-config.yaml cat <<EOF > ./kubeadm-config.yaml apiVersion: kubeadm.k8s.io/v1beta2 kind: ClusterConfiguration kubernetesVersion: v${1} imageRepository: registry.cn-hangzhou.aliyuncs.com/google_containers controlPlaneEndpoint: "${APISERVER_NAME}:6443" networking: serviceSubnet: "10.96.0.0/16" podSubnet: "${POD_SUBNET}" dnsDomain: "cluster.local" EOF # kubeadm init # 按照您处事器网速的情况,您需要等待 3 - 10 分钟 kubeadm init --config=kubeadm-config.yaml --upload-certs # 配置 kubectl rm -rf /root/.kube/ mkdir /root/.kube/ cp -i /etc/kubernetes/admin.conf /root/.kube/config

4、安置Calico

去官网找下载链接https://docs.projectcalico.org/getting-started/kubernetes/quickstart

wget https://docs.projectcalico.org/manifests/calico.yaml sed -i "s#192\.168\.0\.0/16#${POD_SUBNET}#" calico.yaml
kubectl apply -f calico.yaml

此法式中,如果呈现calico-node的PullImageBackOff错误,其原因大多是镜像下载掉败。

解决要领:

可以先将镜像下载下来,使用命令:cat calico.yaml |grep image 列出需要下载的镜像

温馨提示: 本文由Jm博客推荐,转载请保留链接: https://www.jmwww.net/file/web/30461.html