zoukankan      html  css  js  c++  java
  • CentOS 7 rpm包部署kubernetes 1.20

    安装kubernetes集群

    K8s版本:kubernetes1.20 Docker版本:Docker version 20.10.0

    安装前准备
    0、如果没有虚拟机,Windows电脑使用WMvare、MAC电脑使用Virtual-box
    1、准备3台,2G或更大内存,2核或以上CPU,20G以上硬盘 物理机或云主机或虚拟机
    2、系统CentOS 7.x

    环境准备(在3台机运行)
    #根据规划设置主机名
    hostnamectl set-hostname master
    hostnamectl set-hostname node1
    hostnamectl set-hostname node2

    #在添加hosts
    cat >> /etc/hosts << EOF
    192.168.0.20 master
    192.168.0.78 node1
    192.168.0.49 node2
    EOF

    #本地host同样添加,觉得麻烦的同学可以下载switch-host软件管理本地域名解析
    192.168.0.20 master
    192.168.0.78 node1
    192.168.0.49 node2

    关闭防火墙
    systemctl stop firewalld && systemctl disable firewalld

    关闭SElinux(在3台机运行)
    sed -i 's/enforcing/disabled/' /etc/selinux/config && setenforce 0

    关闭swap
    swapoff -a && sed -ri 's/.*swap.*/#&/' /etc/fstab

    时间同步
    yum -y install ntpdate && ntpdate time.windows.com

    #配置内核参数,将桥接的IPv4流量传递到iptables的链
    cat > /etc/sysctl.d/k8s.conf <<EOF
    net.bridge.bridge-nf-call-ip6tables = 1
    net.bridge.bridge-nf-call-iptables = 1
    EOF
    sysctl --system

    安装Docker(在3台机运行)
    step 1: 安装必要的一些系统工具
    yum -y install 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: 更新并安装Docker-CE
    yum makecache fast && yum -y install docker-ce

    Step 4: 开启Docker服务
    systemctl start docker && systemctl enable docker

    通过修改daemon配置文件/etc/docker/daemon.json来使用加速器
    sudo mkdir -p /etc/docker
    sudo tee /etc/docker/daemon.json <<-'EOF'
    {
    "registry-mirrors": ["https://s2q9fn53.mirror.aliyuncs.com"]
    }
    EOF
    systemctl daemon-reload && sudo systemctl restart docker

    安装kubelet、kubeadm、kubectl(在3台机运行)
    #添加kubernetes阿里YUM源
    cat >> /etc/yum.repos.d/kubernetes.repo <<EOF
    [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
    yum -y install kubectl kubelet kubeadm && systemctl enable kubelet && systemctl start kubelet

    部署Kubernetes Master
    #初始化k8s集群
    kubeadm init --kubernetes-version=1.20.0 --apiserver-advertise-address=192.168.0.120 --image-repository registry.aliyuncs.com/google_containers --service-cidr=10.10.0.0/16 --pod-network-cidr=10.122.0.0/16
    提示initialized successfully!表示初始化成功
    注意提示:to start using you cluster,you need to run the following as a regular user:
    mkdir -p $HOME/.kube
    cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
    chown $(id -u):$(id -g) $HOME/.kube/config
    #按提示执行以上三条命令(控制台输出信息里面复制的)

    查看node节点情况
    kubectl get nodes

    #还有一条提示:
    #then you can join any number of worker nodes by running the following on each as root
    #翻译:然后,您可以通过在每个worker节点上以root身份运行以下命令来连接任意数量的worker节点
    #接着把提示如下的语句复制到node节点运行
    kubeadm join 192.168.0.120:6443 --token ...
    以上条命令(控制台输出信息里面复制的)

    #执行下面命令,使kubectl可以自动补充,看你是否需要,选择性执行
    source <(kubectl completion bash)

    #查看node节点
    kubectl get node
    #当前node状态均为noReady,属于正常
    kubectl get node
    #node节点为NotReady,因为corednspod没有启动,缺少网络pod

    部署CNI网络插件
    #安装flannel网络插件
    kubectl apply -f https://docs.projectcalico.org/manifests/calico.yaml
    #发送admin.conf到所有节点,可以在任何一个节点管理集群
    scp /etc/kubernetes/admin.conf root@node1:/etc/kubernetes/admin.conf
    scp /etc/kubernetes/admin.conf root@node2:/etc/kubernetes/admin.conf
    在node节点上加入环境变量
    echo "export KUBECONFIG=/etc/kubernetes/admin.conf" >> /etc/profile
    source /etc/profile
    #执行完成以后可以在任意node节点上管理集群,查看节点是否正常
    kubectl get nodes

    安装kubernetes-dashboard
    kubectl create -f https://gitee.com/yaochengzhu/k8s-install/blob/master/dashboad.yml
    #通过页面访问,推荐使用firefox浏览器,其他浏览器可能会因为证书问题无法访问
    生产环境使用公网信任的证书不会有问题
    https://master:30000
    #这是选择token方式登录,下面获取token
    kubectl create serviceaccount dashboard-admin -n kube-system
    kubectl create clusterrolebinding dashboard-admin --clusterrole=cluster-admin --serviceaccount=kube-system:dashboard-admin
    kubectl describe secrets -n kube-system $(kubectl -n kube-system get secret | awk '/dashboard-admin/{print $1}')
    #以上命令解释:创建admin账号,授权管理集群,复制控制台最后输出的token用于登录即可

    忘记token,使用以下命令获取
    kubectl -n kube-system describe secret $(kubectl -n kube-system get secret | grep admin-user | awk '{print $1}')

    原文链接:

    https://blog.csdn.net/u013218587/article/details/111186022

    https://blog.csdn.net/qq_40297844/article/details/112986323

  • 相关阅读:
    linux命令行挂载NTFS文件系统的移动硬盘
    windows 修改鼠标滚轮自然滚动
    spark sql 的metastore 对接 postgresql
    ubuntu 14.04 源码编译postgresql
    spark sql 对接 HDFS
    部署spark 1.3.1 standalong模式
    perl 打开二进制文件,并拷贝内容
    ubuntu 14 安装XML::Simple 模块
    linux 搭建unixODBC ,并对接 PostgreSQL 9.3.4
    sed 删除指定行
  • 原文地址:https://www.cnblogs.com/OrcinusOrca/p/14704151.html
Copyright © 2011-2022 走看看