美文网首页
centos7 搭建kubernates

centos7 搭建kubernates

作者: 雨中星辰0 | 来源:发表于2021-01-20 15:54 被阅读0次

    centos7 搭建kubernates环境

    作者 时间 说明
    雨中星辰 2021-1-20

    环境说明

    • 系统:CentOS Linux release 7.8
    • 硬件:master 4 core 19GB, Node : 32core 64 GB

    前置准备

    关闭防火墙

    systemctl stop firewalld
    systemctl disable firewalld
    

    关闭交换空间

    swapoff -a
    

    删除swap的加载

    image.png

    一键完成命令:sed -i '/swap/s/^/#/' /etc/fstab

    将机器bridge模式开启

    echo 1 > /proc/sys/net/bridge/bridge-nf-call-iptables
    echo 1 > /proc/sys/net/bridge/bridge-nf-call-ip6tables
    

    或修改/usr/lib/sysctl.d/00-system.conf并按照下面方式设置

    # Kernel sysctl configuration file
    #
    # For binary values, 0 is disabled, 1 is enabled.  See sysctl(8) and
    # sysctl.conf(5) for more details.
    
    # Enable netfilter on bridges.
    net.bridge.bridge-nf-call-ip6tables = 1
    net.bridge.bridge-nf-call-iptables = 1
    net.bridge.bridge-nf-call-arptables = 1
    

    快捷命令:

     sed  -i 's/net.bridge.bridge-nf-call-ip6tables.*/net.bridge.bridge-nf-call-ip6tables = 1/' /usr/lib/sysctl.d/00-system.conf
     sed  -i 's/net.bridge.bridge-nf-call-iptables.*/net.bridge.bridge-nf-call-iptables = 1/' /usr/lib/sysctl.d/00-system.conf
    sed -i 's/net.bridge.bridge-nf-call-arptables.*/net.bridge.bridge-nf-call-arptables = 1/'  /usr/lib/sysctl.d/00-system.conf
    

    禁用SElinux

    修改/etc/sysconfig/selinuxSELINUX=disabled修改为SELINUX=disabled

    也可使用下面命令可一键完成。

    sed  -i  's/^SELINUX=.*/SELINUX=disabled/g'  /etc/sysconfig/selinux 
    

    安装docker

    # step 1: 安装必要的一些系统工具
    sudo yum install -y yum-utils device-mapper-persistent-data lvm2
    # Step 2: 添加软件源信息
    sudo yum-config-manager --add-repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
    # Step 3: 更新缓存
    sudo yum makecache fast
    # Step 4: 安装docker
    sudo yum -y install docker-ce
    # Step 5: 开启Docker服务
    sudo systemctl start docker
    # Step 6: 设置Docker服务开机启动
    sudo systemctl enable docker
    

    安装kubernates

    安装kubectl

    # step 1: 添加kubernetes的阿里云镜像源
    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
    
    # Step 2: 更新缓存
    setenforce 0
    yum makecache fast
    # Step 3: 安装kubelet
    yum install -y kubelet kubeadm kubectl
    # Step 4: 设置kubelet开机启动
    systemctl enable kubelet 
    # Step 5: 启动kubelet
    systemctl start kubelet
    

    配置kubeadm config

    # step 1: 将kubeadm config配置输出到本地
    kubeadm config print init-defaults >init-config.yaml
    # 修改init-config.yaml,将advertiseAddress: 1.2.3.4的ip修改为master的ip,将serviceSubnet: 10.96.0.0/12修改为serviceSubnet: 192.168.0.0/12
    vi init-config.yaml
    

    快捷方式:

    sed -i 's/advertiseAddress: 1.2.3.4/advertiseAddress: master的ip/' init-config.yaml 
    sed -i 's/serviceSubnet: 10.96.0.0/serviceSubnet: 192.168.0.0/' init-config.yaml 
    

    下载kubernates的相关镜像

    kubeadm  config images pull --config=init-config.yaml
    

    由于默认拉取镜像地址k8s.gcr.io国内无法访问,需要科学上网或者镜像仓库的方式

    我是使用的科学上网代理的方式

    image.png

    配置方式:

    mkdir /etc/systemd/system/docker.service.d
    cat <<EOF >  /etc/systemd/system/docker.service.d/http-proxy.conf  
    [Service]
    Environment="HTTP_PROXY=http://192.168.1.30:1080"
    EOF
    
    

    执行初始化,并安装master

    kubeadm init --config=init-config.yaml 
    
    image.png

    按照提示进行配置,例

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

    让Master也是Node

    由于测试只准备了一台机器,就将Master和Node装一台机器了。

     kubectl taint nodes --all node-role.kubernetes.io/master-
    

    安装网络插件

    Kubernates 默认是没有安装网络CNI插件的,需要自行选择一个进行安装。

    在没有安装CNI网络插件时,执行命令kubectl get nodes会发现Master状态为NotReady

    image.png

    这里我选择了weave的网络插件,安装命令:kubectl apply -f "https://cloud.weave.works/k8s/net?k8s-version=$(kubectl version | base64 | tr -d '\n')"

    测试kubernates功能

    • 创建nginx deployment
      kubectl create deployment nginx --image=nginx

    • 查看deployment状态,nginx status为Running,则说明pod创建成功
      kubectl get deployment

    image.png
    • 创建service
      kubectl expose deployment nginx --port=88 --target-port=80 --type=NodePort

    • 查看service
      kubectl get service

    image.png

    其中红色部分为nginx映射的本地端口

    • 访问nginx

      curl localhost:30264

    如果能返回东西,则说明nginx是可用的,咱们整个kubernates环境也没有问题,安装完毕了。

    相关问题:

    1. [ERROR FileContent--proc-sys-net-ipv4-ip_forward]: /proc/sys/net/ipv4/ip_forward contents are not set to 1
      echo 1 > /proc/sys/net/ipv4/ip_forward

    相关文章

      网友评论

          本文标题:centos7 搭建kubernates

          本文链接:https://www.haomeiwen.com/subject/saxkzktx.html