• 采用kubeadm部署工具,部署kubernetes1.16.3


    安装kubenetes有5种部署工具,分别是kubeadm、kops、KRIB、Kubespray。本实验采用的是kubeadm部署工具。如有想了解其他部署工具,请点击这里

    环境说明

                             

    角色/主机名

    系统版本

    CPU

    MEM

    IP

    master

    CentOS 7.7

    4

    4

    192.168.100.80

    node01

    CentOS 7.7

    4

    4

    192.168.100.81

    node02

    CentOS 7.7

    4

    4

    192.168.100.82

    注:系统版本要求7.4+

    环境准备

    检查网络(三个主机)

    ping baidu.com

    检查端口

    Control-plane node

    Protocol

    Port Range

    Purpose

    TCP

    6443

    Kubernetes API server

    TCP

    2379-2380

    etcd server client API

    TCP

    10250

    Kubelet API

    TCP

    10251

    kube-scheduler

    TCP

    10252

    kube-controller-manager

    Worker node(s)

    Protocol

    Port Range

    Purpose

    TCP 10250 Kubelet API
    TCP 30000-32767 NodePort Services**

    设置主机名映射(三个主机)

    vim /etc/hosts

    192.168.100.80    master
    192.168.100.81    node01
    192.168.100.82    node02

    关闭防火墙和selinux(三个主机)

    systemctl stop firewalld

    systemctl disable firewalld

    setenforce 0

    sed -ri 's/(^SELINUX=).*/1disabled/' /etc/selinux/config

    配置docker和kubernetes源(三个节点)

    yum install wget –y

    cd /etc/yum.repos.d && wget https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo && cd -

    cat >> /etc/yum.repos.d/kubernetes.repo <<EOF
    [kubernetes]
    name=Aliyun-kubernetes
    baseurl=https://mirrors.aliyun.com/kubernetes/yum/repos/kubernetes-el7-x86_64/
    enabled=1
    gpgcheck=0
    EOF

    下载docker(三个主机)

    yum install docker-ce-18.06.3.ce-3.el7 -y

    设置docker加速器和Cgroup drivers

    mkdir /etc/docker

    vim /etc/docker/daemon.json

    {

      "exec-opts": ["native.cgroupdriver=systemd"],

      "registry-mirrors": ["https://registry.docker-cn.com"]

    }

    启动docker并设置开机自启动(三个主机)

    systemctl start docker.service

    systemctl enable docker.service

    查看docker版本

    docker --version

    安装kubeadm, kubelet and kubectl(master)

    yum install kubelet kubeadm kubectl –y

    安装kubeadm,kubelet(nodes)

    yum install kubelet kubeadm -y

    设置Cgroup drivers和交换分区(三个主机)

    vim /etc/sysconfig/kubelet

    KUBELET_EXTRA_ARGS="--fail-swap-on=false --cgroup-driver=systemd"

    说明:

    --fail-swap-on:关闭交换分区,kubernetes不允许开启交换分区

    --cgroup-driver:指定Cgroup drivers用谁

    设置kubectl开机自启动(三个主机)

    systemctl enable --now kubelet

    设置必须的sysctl参数,让这些参数重启后仍然生效

    cat > /etc/sysctl.d/99-kubernetes-cri.conf <<EOF
    net.bridge.bridge-nf-call-iptables = 1
    net.ipv4.ip_forward = 1
    net.bridge.bridge-nf-call-ip6tables = 1
    EOF

    sysctl --system

    使用kubernetes创建单个控制平面集群(master)

    kubeadm init --kubernetes-version=v1.16.3 --image-repository registry.aliyuncs.com/google_containers --pod-network-cidr=10.244.0.0/16 --service-cidr=10.96.0.0/12  --ignore-preflight-errors=Swap

    说明:

    --kubernetes-version:为控制平面选择特定的Kubernetes版本。

    --image-repository :指定镜像部署的地址,原地址https://k8s.gcr.io不可用

    --pod-network-cidr:pod的网络地址

    --service-cidr:server的网络地址

    是输出一段字符保持好,后面需要用到

    kubeadm join 192.168.100.80:6443 --token oc5h3c.bs1gikpbvgzbc86y

         --discovery-token-ca-cert-hash sha256:e0e176b55cb5fbf1238351e8d009bf8cc1f9a69a283a47c9ec5766564657d6a0

    每次启动自动加载$HOME/.kube/config下的密钥配置文件(master)

    mkdir -p $HOME/.kube

    cp -i /etc/kubernetes/admin.conf $HOME/.kube/config

    将nodes主机加入kubernetes集群(nodes)

    kubeadm join 192.168.100.80:6443 --token oc5h3c.bs1gikpbvgzbc86y --discovery-token-ca-cert-hash sha256:e0e176b55cb5fbf1238351e8d009bf8cc1f9a69a283a47c9ec5766564657d6a0 --ignore-preflight-errors=Swap

    注意:红色部分是上面复制好的内容,加上黄色部分,请仔细看别忘了两个横杠。

    安装flannel网络(master)

    kubectl apply -f https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.yml

    验证:

    查看kubernetes启动的docker容器

    [root@master ~]# kubectl get -A pods -o wide

    4d53650a867f90564009942d1f20a4a

    查看kubernetes集群节点

    [root@master ~]# kubectl get nodes

    6065384f1d9ae8c4b2b3a942e83bafa

    查看各服务器的镜像

    docker image list

    90017b56c492e4711302cd3c7a01ce4

    878fcb69568466fd5610b54a5e2339d

    525d85553dd654a88ddf6c0ef832ef5

    查看下个内容kubernetes资源清单之pod点击这里

    遇到什么报错,欢迎评论

  • 相关阅读:
    201871020225牟星源 《面向对象程序设计(java)》第一周学习总结
    201871020225牟星源《面向对象程序设计(java)》第十周学习总结
    201871020225牟星源 《面向对象程序设计(java)》课程学习进度条
    201871020225牟星源《面向对象程序设计(java)》第67周学习总结
    201871020225牟星源《面向对象程序设计(java)》第四周学习总结
    201871020225牟星源《面向对象程序设计(java)》第七周学习总结
    模拟赛 题目重修
    SP1026 FAVDICE Favorite Dice
    可是姑娘,你为什么要编程呢?
    javascript中offset、client、scroll的属性总结
  • 原文地址:https://www.cnblogs.com/mycloudedu/p/12004056.html
Copyright © 2020-2023  润新知