0.2 安装k8s

本文详细介绍了如何在Linux环境中使用Docker和kubeadm搭建Kubernetes集群,包括配置阿里云镜像源、安装特定版本的Kubernetes组件、初始化kubeadm、设置网络插件Calico,以及解决初始化过程中的问题。在完成所有步骤后,还展示了如何检查节点状态和部署应用。此外,还提供了卸载集群的完整流程。
摘要由CSDN通过智能技术生成
  1. 前提条件

    0.0 环境准备
    0.1 安装docker

  2. 配置源
    cat <<EOF > /etc/yum.repos.d/kubernetes.repo
    输入指令
[kubernetes]
name=Kubernetes
baseurl=https://mirrors.aliyun.com/kubernetes/yum/repos/kubernetes-el7-x86_64
enabled=1
gpgcheck=1
repo_gpgcheck=1
gpgkey=https://mirrors.aliyun.com/kubernetes/yum/doc/yum-key.gpg https://mirrors.aliyun.com/kubernetes/yum/doc/rpm-package-key.gpg
EOF
  1. 安装(需要指定旧版本,否则后面阿里云镜像中部分新版本可能获取不到)
    yum install -y kubelet kubeadm kubectl
    yum install -y kubelet-1.19.8 kubectl-1.19.8 kubeadm-1.19.8
  2. 启动kubelet并设置开机启动
    systemctl enable kubelet && systemctl start kubelet
  3. kubeadm初始化
    使用calico作为网络插件(–pod-network-cidr=192.168.0.0/16)
    如果是单核CPU需要加参数(–ignore-preflight-errors=NumCPU)
    kubeadm init
    注:如未开启bridge-nf-call-iptables,必须要修改配置为开启状态,原因
    [preflight] Some fatal errors occurred:
    /proc/sys/net/bridge/bridge-nf-call-iptables contents are not set to 1
    解决方案:
    echo 1 > /proc/sys/net/bridge/bridge-nf-call-iptables
    echo 1 > /proc/sys/net/bridge/bridge-nf-call-ip6tables

kubeadm init --ignore-preflight-errors=NumCPU --image-repository registry.aliyuncs.com/google_containers --kubernetes-version=v1.19.8 --pod-network-cidr=192.168.0.0/16

拷贝kubectl使用的连接k8s认证文件到默认路径
根据init时的提示执行如下指令(如果执行了kubeadm reset命令,需要手动删除.kube目录再重新执行操作:rm -rf $HOME/.kube)

mkdir -p $HOME/.kube
sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
sudo chown $(id -u):$(id -g) $HOME/.kube/config

kubectl get nodes
执行查看状态,此时为 NotReady
按照提示(提示在kubeadm init的output最后), 需要初始化虚拟网络

我们在浏览器中输入https://8.130.177.188:6443来验证一下是否部署成功,返回如下:
{
“kind”: “Status”,
“apiVersion”: “v1”,
“metadata”: {

},
“status”: “Failure”,
“message”: “forbidden: User “system:anonymous” cannot get path “/””,
“reason”: “Forbidden”,
“details”: {

},
“code”: 403
}

确认调度器正常:
kubectl get cs
如果scheduler和controller-manager都为Unhealthy,将port=0这行注释掉
vim /etc/kubernetes/manifests/kube-scheduler.yaml
vim /etc/kubernetes/manifests/kube-controller-manager.yaml
systemctl restart kubelet.service
再次确认调度器正常:
kubectl get cs

安装网络插件:
kubectl create -f https://docs.projectcalico.org/manifests/tigera-operator.yaml
kubectl create -f https://docs.projectcalico.org/manifests/custom-resources.yaml

执行
kubectl get pods -A
查看tigera-operator及所有的pod已经ready,如果没有可以加watch命令监控一直到ready为止

执行
kubectl get nodes
查看maste此时已经为Ready

开启master节点允许部署pod:
kubectl taint nodes --all node-role.kubernetes.io/master-

  1. 卸载集群
    想要撤销kubeadm做的事,首先要排除节点,并确保在关闭节点之前要清空节点。
    在主节点上运行:
    kubectl drain <node name> --delete-local-data --force --ignore-daemonsets
    kubectl delete node <node name>
    然后在需要移除的节点上,重置kubeadm的安装状态:
    kubeadm reset
    rm -rf $HOME/.kube
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值