• 安装k8s集群


    一、前置环境配置

    安装两台centos

    实验环境,一台pc配有docker环境,有两个centsos7容器,其中一个容器作为master,一个作为node。如果master与node都是用默认端口,会存在冲突,所以在此基础上做细微的调整。

    master端口:

    服务名宿主机端口docker内端口
    API Server64436443
    etcd2379,23802379,2380
    Controller Manager1025210252
    scheduler1025110251
    Kubelet1025010250
    container runtime23752375
    NodePort3000-32673000-3267

    NodePort由k8s自由分配,我们不用处理。

    node端口:

    服务名宿主机端口docker内端口
    API Server54435443
    etcd1379,13801379,1380
    Controller Manager92529252
    scheduler92519251
    Kubelet92509250
    container runtime13751375
    NodePort5000-52673000-3267

    NodePort由k8s自由分配,我们不用处理。

    运行master 容器

    docker run --name k8s-master --hostname k8s-master  --privileged=true -p 6643:6643 -p 2379:2379 -p 2380:2380 -p 10252:10252 -p 10251:10251 -p 10250:10250 -p 2375:2375 -p 3000-3267:3000-3267 -v /var/run/docker.sock:/var/run/docker.sock  -d  centos:centos7 /usr/sbin/init
    
    systemctl start docker
    systemctl enable docker
    
    • 1
    • 2
    • 3
    • 4

    运行node容器

    docker run --name k8s-node --hostname k8s-node  --privileged=true -p 5643:6643 -p 1379:2379 -p 1380:2380 -p 9252:10252 -p 9251:10251 -p 9250:10250 -p 1375:2375 -p 5000-5267:3000-3267 -v /var/run/docker.sock:/var/run/docker.sock -d  centos:centos7 /usr/sbin/init
    
    systemctl start docker
    systemctl enable docker
    
    • 1
    • 2
    • 3
    • 4

    关闭防火墙

    centos7容器默认不带防火墙,真机的话需要关闭一下。

    systemctl stop firewalld
    systemctl disable firewalld
    
    • 1
    • 2

    关闭selinux

    centos7容器默认不带selinux,真机的话需要关闭一下。

    sed -i 's/enforcing/disabled' /etc/selinux/config #永久关闭
    setenforece 0 #临时关闭
    
    • 1
    • 2

    关闭swap(k8s禁止虚拟内存以提高性能)

    swapoff -a 临时关闭
    sed -ri 's/.*.swap.*/#&' /etc/fstab #永久关闭
    
    • 1
    • 2

    在master添加hosts

    master与node在同一台宿主机上,外部ip相同都是宿主机的ip,这里使用宿主机的不同端口来区分master容器和node容器,这里就不用配置hosts了。真机的话需要配置一下。

    cat >> /etc/hosts << EOF
    192.168.172.131 k8smaster
    192.168.172.132 k8snode
    EOF
    
    • 1
    • 2
    • 3
    • 4

    设置网桥参数

    cat > /etc/sysctl.d/k8s.conf << EOF
    net.bridge.bridge-nf-call-ip6tables = 1
    net.bridge.bridge-nf-call-iptables = 1
    EOF
    sysctl --system # 生效
    
    • 1
    • 2
    • 3
    • 4
    • 5

    时间同步

    yum install ntpdate -y
    ntpdate time.windows.com
    
    • 1
    • 2

    二、kubeadm安装

    master,node都需要安装docker、kubelet、kubeadmin。
    配置docker在yum中的国内镜像源:

    yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
    
    • 1

    安装docker

    yum install docker-ce-19.03.13 -y
    
    • 1

    /etc/docker/daemon.json 配置docker国内加速器

    vim /etc/docker/daemon.json 
    
    {
    	"registry-mirrors": ["https://registry.docker-cn.com"]
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    systemctl enable docker.service
    
    • 1

    安装k8s组件

    添加k8s组件 kubelet,kubeadmin,kubectl的阿里云源

    cat > /etc/yum.repos.d/kubernetes.repo <<EOF
    
    [kubernetes]
    
    name=Kubernetes
    
    baseurl=http://mirrors.aliyun.com/kubernetes/yum/repos/kubernetes-el7-x86_64
    
    enabled=1
    
    gpgcheck=0
    
    repo_gpgcheck=0
    
    gpgkey=http://mirrors.aliyun.com/kubernetes/yum/doc/yum-key.gpg
    
    http://mirrors.aliyun.com/kubernetes/yum/doc/rpm-package-key.gpg
    
    EOF
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19

    安装组件

    yum install -y kubelet-1.20.6 kubeadm-1.20.6 kubectl-1.20.6
    systemctl enable kubelet.service
    
    • 1
    • 2

    测试k8s组件是否都安装成功

    yum list installed | grep kubelet
    yum list installed | grep kubeadm
    yum list installed | grep kubectl
    
    • 1
    • 2
    • 3

    master节点初始化

    kubeadm init --image-repository \ 
    registry.aliyuncs.com/google_containers \ 
    --kubernetes-version=v1.20.6 \ 
    --pod-network-cidr=10.244.0.0/16 \ 
    --apiserver-advertise-address=192.168.11.109 \
    --cri-socket unix:///var/run/cri-dockerd.sock
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
  • 相关阅读:
    MyBatisPlus + ShardingJDBC 批量插入不返回主键ID
    关于python的odl库的相关问题解决
    GIT分布式版本控制系统 | 命令讲解入门
    跨境电商卖家必知的【圣诞节营销】终极指南(二)
    组合控件——底部标签栏——利用BottomNavigationView实现底部标签栏
    c++多态
    时序预测 | MATLAB实现基于SVM-Adaboost支持向量机结合AdaBoost时间序列预测
    SSM流浪动物救助系统毕业设计-附源码191631
    Spring框架面试题总结(面试必备)
    全流程机器视觉工程开发(三)任务前瞻 - 从opencv的安装编译说起,到图像增强和分割
  • 原文地址:https://blog.csdn.net/qq_29012499/article/details/132678640