kubeadm安装k8s集群

1.初始化服务器

  • 关闭防火墙

    #[所有主节点都执行]
    systemctl stop firewalld
    systemctl disable firewalld
    
  • 关闭selinux

    #[所有主节点都执行]
    setenforce 0
    #修改开机启动配置 SELINUX=disabled
    vi /etc/selinux/config
    
  • 配置主机名

    #[所有主节点都执行] [主机名不一样]
    #[master1][node1][node2]
    hostnamectl set-hostname 主机名
    #验证主机名
    hostname
    
  • 配置名称解析–>修改host文件

    #[所有主节点都执行]
    vi /etc/hosts
    192.168.64.130	master1
    192.168.64.131	node1
    192.168.64.132	node2
    #验证网络
    ping node1 
    
  • 配置时间同步

    • 选择一个节点作为服务端,剩下的作为客户端

      • master1为时间服务器的服务端,其他的为时间服务器的客户端

        #同步网络时间
        yum -y install ntp
        ntpdate time.nist.gov
        
    • 配置master1

      yum install chrony -y
      vi /etc/chrony.conf
      #修改默认配置
      #删除
      server 0.centos.pool.ntp.org iburst
      server 1.centos.pool.ntp.org iburst
      server 2.centos.pool.ntp.org iburst
      server 3.centos.pool.ntp.org iburst
      #修改三项
      server 127.127.1.0 iburst
      allow 192.168.64.0/24
      local stratum 10
      #启动服务端
      systemctl start chronyd
      #设置自动启动
      systemctl enable chronyd
      #检查是否启动
      ss -unl | grep 123
      
    • 配置k8s-node1 和 k8s-node2

      yum install chrony -y
      vi /etc/chrony.conf
      #修改默认配置
      server 0.centos.pool.ntp.org iburst
      server 1.centos.pool.ntp.org iburst
      server 2.centos.pool.ntp.org iburst
      server 3.centos.pool.ntp.org iburst
      #修改一项
      server 192.168.64.130 iburst
      #启动服务端
      systemctl start chronyd
      #设置自动启动
      systemctl enable chronyd
      #检查时间是否同步 ^* k8s-master1  
      chronyc sources
      
  • 关闭交换分区

     #[所有主节点都执行]
     #关闭分区
     swapoff -a
     #删除一行配置 #/dev/mapper/centos-swap swap
     vi /etc/fstab
     #检查是否关闭: Swap: 0 0 0 成功关闭
     free -m
    

2.安装k8s集群

安装docker/kubeadm/kubelet【所有节点】
$ 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
$ systemctl enable docker && systemctl start docker
  • 配置镜像下载加速器

    $ vi /etc/docker/daemon.json
    {
      "registry-mirrors": ["https://b9pmyelo.mirror.aliyuncs.com"]
    }
    $ systemctl restart docker
    $ docker info
    
    
    # kubeadm-1.18.0 最新支持 docker-ce-19.03
    # 如果阿里云没有19.03建议使用清华镜像
    ########################################
    ### 删除当前docker yum remove docker-ce
    wget https://mirrors.tuna.tsinghua.edu.cn/docker-ce/linux/centos/docker-ce.repo
    yum install docker-ce-19.03.8 -y
    ########################################
    
  • 添加阿里云yum软件源

    $ vi /etc/yum.repos.d/kubernetes.repo
    [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
    
  • 安装kubeadm/kebelet/kubectl

    $ yum install -y kubelet-1.18.0 kubeadm-1.18.0 kubectl-1.18.0
    $ systemctl enable kubelet
    
部署kubenetes master
# 在master节点执行
$ kubeadm init \
  --apiserver-advertise-address=192.168.64.130 \
  --image-repository registry.aliyuncs.com/google_containers \
  --kubernetes-version v1.18.0 \
  --service-cidr=10.96.0.0/12 \
  --pod-network-cidr=10.244.0.0/16 \
  --ignore-preflight-errors=all
# 等待执行完约5-10分钟  
# 设置开机启动
$ systemctl enable kubelet.service
  • 拷贝kubectl使用的连接k8s认证文件到默认路径

    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
    NAME         STATUS   ROLES    AGE   VERSION
    k8s-master   Ready    master   2m   v1.18.0
    
  • 部署容器网络CNI

    • 这里使用Flannel作为Kubernetes容器网络方案,解决容器跨主机网络通信。
      Flannel是CoreOS维护的一个网络组件,Flannel为每个Pod提供全局唯一的IP,Flannel使用ETCD来存储Pod子网与Node IP之间的关系。flanneld守护进程在每台主机上运行,并负责维护ETCD信息和路由数据包。
    #将https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.yml 内容copy到kube-flannel.yml
    vi kube-flannel.yml
    
    # 安装
    kubectl apply -f kube-flannel.yml
    
    # 查看安装进度
    kubectl get pods -n kube-system
    
  • 加入kubernetes node

    • 在node执行。

      向集群添加新节点,执行在kubeadm init输出的kubeadm join命令:

    kubeadm join 192.168.64.130:6443 --token e4ea1z.ysk6hz3qt5h38o8y \
        --discovery-token-ca-cert-hash sha256:b1df8edcda6e1673206dd817e1f77d9b832fafa44e366f0f2f87e861929c7a5b
    # 等待初始化完成
    
    • 默认token有效期为24小时,当过期之后,该token就不可用了。这时就需要重新创建token,操作如下:

      $ kubeadm token create
      $ kubeadm token list
      $ openssl x509 -pubkey -in /etc/kubernetes/pki/ca.crt | openssl rsa -pubin -outform der 2>/dev/null | openssl dgst -sha256 -hex | sed 's/^.* //'
      63bca849e0e01691ae14eab449570284f0c3ddeea590f8da988c07fe2729e924
      
      $ kubeadm join 192.168.64.130:6443 --token nuja6n.o3jrhsffiqs9swnu --discovery-token-ca-cert-hash sha256:63bca849e0e01691ae14eab449570284f0c3ddeea590f8da988c07fe2729e924
      
  • 连接桌面管理工具lens

    • 拷贝$HOME/.kube目录下 config文件内容
    • 或者使用 kubernetes-dashboard
  • 部署kubernetes-dashboard[web ui]

    • 先将yaml文件下载下来,修改里面镜像地址和Service NodePort类型。

      # wget https://raw.githubusercontent.com/kubernetes/dashboard/master/src/deploy/recommended/kubernetes-dashboard.yaml
      
      #修改 image: k8s.gcr.io/kubernetes-dashboard-amd64:v1.10.1
      #image: registry.aliyuncs.com/google_containers/kubernetes-dashboard-amd64:v1.10.1
      
      #修改
      spec:
        type: NodePort #指定类型
        ports:
          - port: 443
            targetPort: 8443
            nodePort: 30001 #对外暴漏端口
            
      # kubectl apply -f kubernetes-dashboard.yaml
      
      
      #创建service account并绑定默认cluster-admin管理员集群角色:
      # 创建用户
      $ kubectl create serviceaccount dashboard-admin -n kube-system
      # 用户授权
      $ kubectl create clusterrolebinding dashboard-admin --clusterrole=cluster-admin --serviceaccount=kube-system:dashboard-admin
      # 获取用户Token
      $ kubectl describe secrets -n kube-system $(kubectl -n kube-system get secret | awk '/dashboard-admin/{print $1}')
      
      # 访问 https://nodeip:30001/ 使用获取到的token登录
      
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值