zoukankan      html  css  js  c++  java
  • 【赵强老师】使用kubeadmin部署K8s集群

    首先,我们来看一下整体的架构。

     K8s的部署方式:

    • yum方式部署
    • 二进制包:手动使用tar包来部署
    • minikube:单机版,用于开发测试。
    • kubeadm:可以把kubeadmin看成一个部署工具,它简化K8s的部署过程。

    (一)准备工作

    • 安装CentOS虚拟机、关闭防火墙、SELinux、禁用Swap 
    systemctl stop firewalld.service
    systemctl disable firewalld.service
    swapoff -a
    sed -i 's/enforcing/disabled/' /etc/selinux/config
    setenforce 0  
    • 配置主机名和IP的host信息,编辑每个节点的/etc/hosts文件,如下:
    192.168.79.111	master
    192.168.79.112	node1
    192.168.79.113	node2
    
    • 所有节点安装Docker。这里我们使用阿里云提供的镜像来快速安装 
    yum -y install wget
    wget https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo  -O /etc/yum.repos.d/docker-ce.repo
    
    yum -y install docker-ce-18.06.1.ce-3.el7
    systemctl enable docker && systemctl start docker
    docker --version
    
    • 配置Docker的镜像加速器 
    sudo mkdir -p /etc/docker
    sudo tee /etc/docker/daemon.json <<-'EOF'
    {
      "registry-mirrors": ["https://你自己阿里加速的地址.mirror.aliyuncs.com"]
    }
    EOF
    sudo systemctl daemon-reload
    sudo systemctl restart docker
    
    • 配置阿里云的Kubernetes源
    cat > /etc/yum.repos.d/kubernetes.repo << EOF
    [kubernetes]
    name=Kubernetes
    baseurl=https://mirrors.aliyun.com/kubernetes/yum/repos/kubernetes-el7-x86_64
    enabled=1
    gpgcheck=0
    repo_gpgcheck=0
    gpgkey=https://mirrors.aliyun.com/kubernetes/yum/doc/yum-key.gpg https://mirrors.aliyun.com/kubernetes/yum/doc/rpm-package-key.gpg
    EOF
    

      

    (二)使用kubeadmin部署K8s集群

    • 所有节点安装kubeadm,kubelet和kubectl。由于版本更新频繁,这里指定版本号部署
    yum install -y kubelet-1.15.0 kubeadm-1.15.0 kubectl-1.15.0
    systemctl enable kubelet
    
    • 部署Kubernetes Master(在Master节点执行)
    kubeadm init 
    --apiserver-advertise-address=192.168.79.111 
    --image-repository registry.aliyuncs.com/google_containers 
    --kubernetes-version v1.15.0 
    --service-cidr=10.1.0.0/16 
    --pod-network-cidr=10.244.0.0/16
    

      注意:由于默认拉取镜像地址k8s.gcr.io国内无法访问,这里指定阿里云镜像仓库地址。

    • 使用kubectl工具(在Master节点执行)
    mkdir -p $HOME/.kube
    sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
    sudo chown $(id -u):$(id -g) $HOME/.kube/config
    
    • 安装配置flannel网络。对于主节点来说,应该执行kubectl apply -f kube-flannel.yml;但是对于Node节点来说,应该是下载collenzhao/flannel:v0.11.0-amd64这个镜像(赵强老师提供的镜像),当执行join操作的时候,就会自动使用flannel网络了。
    wget https://raw.githubusercontent.com/coreos/flannel/a70459be0084506e4ec919aa1c114638878db11b/Documentation/kube-flannel.yml
    
    kubectl apply -f kube-flannel.yml
    

      确保quay.io/coreos/flannel:v0.11.0-amd64这个镜像能够访问到。如果不可以,可以修改赵老师的镜像地址:collenzhao/flannel:v0.11.0-amd64

    quay.io/coreos/flannel:v0.11.0-amd64    
    改为
    collenzhao/flannel:v0.11.0-amd64
    
    • 向集群添加新节点(所有的Node节点执行)。执行在kubeadm init输出的kubeadm join命令
    kubeadm join 192.168.79.111:6443 
    --token 6p5a3s.n5nuzppgf9hmxypf 
    --discovery-token-ca-cert-hash 
    sha256:64541d1e9d46b4597f691b1d3b60fd842a89a56a19f041c183c22a54d8d1f145
    
    • 在Mater节点执行命令查看集群的状态信息
    kubectl get nodes
    

    •  测试kubernetes集群。在Kubernetes集群中创建一个pod,运行Nginx服务,验证是否正常运行
    kubectl create deployment nginx --image=nginx
    kubectl expose deployment nginx --port=80 --type=NodePort
    kubectl get pod,svc
    

    •  通过浏览器访问30956端口

    • 可以使用下面的命令进行扩容,并查看pods 
    kubectl scale deployment nginx --replicas=3
    kubectl get pod
    

     

  • 相关阅读:
    关于C#的委托与事件的重新认识
    linux 下添加,修改,删除路由
    反射获取程序集的信息
    原创:2016.4.252016.5.1 C# informal essay and tittle_tattle
    原创:C sharp 中 Enum的几点小 Tips
    转:Dictionary<int,string>怎么获取它的值的集合?急!急!急!
    转:C#整数三种强制类型转换int、Convert.ToInt32()、int.Parse()的区别
    转:C#: static关键字的作用
    新博客 Fighting
    Win10系统下在国内访问Tensorflow官网
  • 原文地址:https://www.cnblogs.com/collen7788/p/12625344.html
Copyright © 2011-2022 走看看