zoukankan      html  css  js  c++  java
  • K8S集群搭建

    一、 环境和版本

    1. 操作系统

    干干静静的centos7系统,选取的是mini的iso最小化安装

    # cat /etc/centos-release
    CentOS Linux release 7.3.1611 (Core)
    # cat /proc/version
    Linux version 3.10.0-514.el7.x86_64 (builder@kbuilder.dev.centos.org) (gcc version 4.8.5 20150623 (Red Hat 4.8.5-11) (GCC) ) #1 SMP Tue Nov 22 16:42:41 UTC 2016

    2. K8S版本

    K8S使用的当前(现在是2021-04-07)最新版本:v1.20。官方教程:https://kubernetes.io/zh/docs/home/。安装方式采用kubeadm安装。

    3. 集群环境

    最少2个节点,其中1个节点作为master节点,其他节点作为node节点,本例中:

    1. 10.10.2.251,master节点
    2. 10.10.2.252,node节点
    3. 10.10.2.253,node节点

    二、 安装

    1. 设置host

    # ssh root@10.10.2.251
    # hostnamectl set-hostname k8s-1
    # exit
    
    # ssh root@10.10.2.252
    # hostnamectl set-hostname k8s-2
    # exit
    
    # ssh root@10.10.2.252
    # hostnamectl set-hostname k8s-3
    # exit

    2. 所有节点执行准备

    2.1 关闭防火墙和selinux
    # setenforce 0
    # sed -i 's|SELINUX=(.*)|SELINUX=disabled|g' /etc/selinux/config
    # systemctl stop firewalld
    # systemctl disable firewalld
    2.2 配置docker的yum源
    # curl -o /etc/yum.repos.d/docker-ce.repo https://download.docker.com/linux/centos/docker-ce.repo
    2.3 安装docker-ce
    # yum install -y docker-ce
    2.4 启动docker服务
    # systemctl start docker
    # systemctl enable docker
    2.5 关闭swap
    # swapoff -a
    # vim /etc/fstab 
    将有swap那行注释掉
    2.6 配置K8S的yum源
    # vim /etc/yum.repos.d/kubernetes.repo
    输入一下内容保存 [kubernetes]
    name=kubernetes
    baseurl=https://opentuna.cn/kubernetes/yum/repos/kubernetes-el7-$basearch
    enabled=1
    2.7 安装kubelet、kubeadm、kubectl
    # yum install -y kubelet kubeadm kubectl --nogpgcheck
    2.8 启动kubelet服务
    # systemctl start kubelet
    # systemctl enable kubelet
    2.9 获取K8S所需的docker镜像
    # docker pull registry.aliyuncs.com/google_containers/kube-apiserver:v1.20.5
    # docker pull registry.aliyuncs.com/google_containers/kube-controller-manager:v1.20.5
    # docker pull registry.aliyuncs.com/google_containers/kube-scheduler:v1.20.5
    # docker pull registry.aliyuncs.com/google_containers/kube-proxy:v1.20.5
    # docker pull registry.aliyuncs.com/google_containers/pause:3.2
    # docker pull registry.aliyuncs.com/google_containers/etcd:3.4.13-0
    # docker pull registry.aliyuncs.com/google_containers/coredns:1.7.0
    
    # docker tag registry.aliyuncs.com/google_containers/kube-apiserver:v1.20.5           k8s.gcr.io/kube-apiserver:v1.20.5
    # docker tag registry.aliyuncs.com/google_containers/kube-controller-manager:v1.20.5  k8s.gcr.io/kube-controller-manager:v1.20.5
    # docker tag registry.aliyuncs.com/google_containers/kube-scheduler:v1.20.5           k8s.gcr.io/kube-scheduler:v1.20.5
    # docker tag registry.aliyuncs.com/google_containers/kube-proxy:v1.20.5               k8s.gcr.io/kube-proxy:v1.20.5
    # docker tag registry.aliyuncs.com/google_containers/pause:3.2                        k8s.gcr.io/pause:3.2
    # docker tag registry.aliyuncs.com/google_containers/etcd:3.4.13-0                    k8s.gcr.io/etcd:3.4.13-0
    # docker tag registry.aliyuncs.com/google_containers/coredns:1.7.0                    k8s.gcr.io/coredns:1.7.0

    3. master节点执行创建集群

    3.1 初始化集群
    # kubeadm init --pod-network-cidr=10.244.0.0/16

    注意执行成功后类似如下输出,复制下来

    kubeadm join 10.10.2.251:6443 --token 2dhvds.4yd881szk64kqxoo --discovery-token-ca-cert-hash sha256:5435c5cbfbef0e00f5fd7b96c325771adc5a8f5591a7799939861bde6d0f557f
    3.2 执行命令
    # vi /etc/profile
    增加如下一行,并保存
    export KUBECONFIG=/etc/kubernetes/admin.conf
    # source /etc/profile
    3.3 安装网络插件
    # kubectl apply -f https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.yml

    4. 将node节点加入集群

    执行3.1步输出内容

    # ssh root@10.10.2.252
    # kubeadm join 10.10.2.251:6443 --token 2dhvds.4yd881szk64kqxoo --discovery-token-ca-cert-hash sha256:5435c5cbfbef0e00f5fd7b96c325771adc5a8f5591a7799939861bde6d0f557f
    # exit
    
    # ssh root@10.10.2.253
    # kubeadm join 10.10.2.251:6443 --token 2dhvds.4yd881szk64kqxoo --discovery-token-ca-cert-hash sha256:5435c5cbfbef0e00f5fd7b96c325771adc5a8f5591a7799939861bde6d0f557f
    # exit

    4. 查看集群状态

    # kubectl get nodes
    
    NAME    STATUS     ROLES                  AGE     VERSION
    k8s-1   Ready        control-plane,master   15m    v1.20.5
    k8s-2   Ready        <none>                 6m48s   v1.20.5
    k8s-3   Ready        <none>                 7m35s   v1.20.5
    笔者只是初学者,开此博客的初衷是为了给自己的学习过程留一个痕迹。所以您可能发现笔者措辞不严谨、逻辑不合理,甚至代码有错误、结论很偏颇等等。笔者感激各位的讨论和指正,并在此不胜感激!拜谢!欢迎加QQ群讨论:852410026
  • 相关阅读:
    1. C/C++项目一
    3. C/C++笔试面试经典题目三
    1. C/C++笔试面试经典题目一
    Win7下C/C++跨平台开发工具IDE的安装之Eclipse-CDT
    Win7下C/C++跨平台开发工具IDE的安装之CodeBlocks
    css
    form表单,选择器
    html介绍
    元类
    事务、视图、触发器、存储过程、函数、数据库的备份
  • 原文地址:https://www.cnblogs.com/LOVE0612/p/14628999.html
Copyright © 2011-2022 走看看