• Kubernetes集群部署


    一、docker环境安装

    1.安装yum工具类

    yum install -y yum-utils

    2.配置yum源

    yum-config-manager --add-repo http://download.docker.com/linux/centos/docker-ce.repo

    3.安装docker 

    1. #最新版本
    2. yum install -y docker-ce docker-ce-cli containerd.io
    3. #指定版本
    4. yum install -y docker-ce-20.10.7 docker-ce-cli-20.10.7 containerd.io-1.4.6

    4.启动

    1. systemctl enable docker --now
    2. #检测docker启动是否成功
    3. docker info

    5.配置加速

    1. sudo mkdir -p /etc/docker
    2. sudo tee /etc/docker/daemon.json <<- 'EOF'
    3. {
    4. "registry-mirrors":["https://82m9ar63.mirror.aliyuncs.com"],
    5. "exec-opts":["native.cgroupdriver=systemd"],
    6. "log-opts":{
    7. "max-size": "100m"
    8. },
    9. "storage-driver": "overlay2"
    10. }
    11. EOF
    12. sudo systemctl daemon-reload
    13. sudo systemctl restart docker
    14. #需要修改一下镜像加速地址

    二、 基础环境设置

    1. #各个机器设置自己的域名
    2. hostnamectl set-hostname xxxx
    3. # 将SELinux 设置为permissive模式 (临时)
    4. sudo setenforce 0
    5. sudo sed -i 's/^SELINUX=enforcing$/SETINUX=permisive/' /etc/selinux/config
    6. # 关闭swap
    7. swapoff -a
    8. sed -ri 's/.*swap.*/#&/' /etc/fstab
    9. #允许 iptables 检查桥接流量
    10. cat <<EOF | sudo tee /etc/modules-load.d/k8s.conf
    11. br_netfilter
    12. EOF
    13. cat <<EOF | sudo tee /etc/sysctl.d/k8s.conf
    14. net.bridge.bridge-nf-call-ip6tables = 1
    15. net.bridge.bridge-nf-call-iptables = 1
    16. EOF
    17. sudo sysctl --system

    三、 安装kubelet、kubeadm、bubectl

    1.配置kubernetes源为阿里的yum源,并且启动kubelet

    1. #配置kubernetes源为阿里的yum源
    2. cat > /etc/yum.repos.d/kubernetes.repo << EOF
    3. [kubernetes]
    4. name=Kubernetes
    5. baseurl=https://mirrors.aliyun.com/kubernetes/yum/repos/kubernetes-el7-x86_64
    6. enabled=1
    7. gpgcheck=0
    8. repo_gpgcheck=0
    9. gpgkey=https://mirrors.aliyun.com/kubernetes/yum/doc/yum-key.gpg https://mirrors.aliyun.com/kubernetes/yum/doc/rpm-package-key.gpg
    10. EOF
    11. yum install -y kubelet-1.20.9 kubeadm-1.20.9 kubectl-1.20.9 --disableexcludes=kubernets
    12. sudo systemctl enable --now kubelet

    2. 使用kubeadm引导集群

    2.1.下载各个机器需要的镜像

    1. sudo tee ./images.sh <<-'EOF'
    2. #!/bin/bash
    3. images=(
    4. kube-apiserver:v1.20.9
    5. kube-proxy:v1.20.9
    6. kube-controller-manager:v1.20.9
    7. kube-scheduler:v1.20.9
    8. coredns:1.7.0
    9. etcd:3.4.13-0
    10. pasue:3.2
    11. )
    12. for imageName in ${images[@]};do
    13. docker pull registry.cn-hangzhou.aliyuncs.com/lfy_k8s_images/$imageName
    14. done
    15. EOF
    16. chmod +X ./images.sh && ./images.sh

    2.2.域名映射

    1. #所有机器执行,ip和域名需要修改成自己的
    2. echo "172.31.0.2" cluster-endpoint" >> /etc/hosts
    3. #主节点初始化,image-repository地址需要修改为自己的
    4. kubeadm init \
    5. --apiserver-advertise-address=172.31.0.2 \
    6. --control-plane-endpoint=cluster-endpoint
    7. --image-repository registry.aliyuncs.com/google_containers \
    8. --kubernetes-version v1.20.9 \
    9. --service-cidr=10.96.0.0/16 \
    10. --pod-network-cidr=192.168.0.0/16
    11. #注意所有网络范围不重叠

    2.3.执行成功后的界面中的命令要注意

    • 设置.kube/config
    • 安装网络组建
      1. curl https://docs.projectcalico.org.manifests/calico.yaml -O
      2. kubectl apply -f calico.yaml
    • 加入node节点
      1. sudo kubeadm join cluster-endpoint:6443 --token 5ezixq.itmxvdgey8uduysr \
      2. --discovery-token-ca-cert-hash sha256:d641cec650bdee479a3e7479b558ab68886f7c41ef89f2857099776ed72bcaae
      3. #这个令牌的有效期是24小时
    • 新令牌

    • kubeadm token create --print-join-command

    • 命令

    1. #查看集群所有节点
    2. kubectl get nodes
    3. #根据配置文件,给集群创建资源
    4. kubectl apply -f xxxx.yaml
    5. #查看集群部署了哪些应用
    6. docker ps === kubectl get pod -A
    7. # 运行中的应用在docke里面叫容器,在k8s里面叫Pod

    三、可视化界面dashboard(一下命令都是在master节点执行)

    1.部署

    1. kubectl apply -f https://raw.githubusercontent.com/kubernetes/dashboard/v2.0.0-beta5/aio/deploy/recommended.yaml
    2. #如果访问不了该 yaml 文件,请使用下面的命令,效果是等价的
    3. kubectl apply -f https://kuboard.cn/install-script/k8s-dashboard/v2.0.0-beta5.yaml

    2.设置访问端口

    1. kubectl edit svc kubernetes-dashboard -n kubernetes-dashboard
    2. 修改type: ClusterIP 改为 type:NodePort
    3. #执行这个命令获取到dashboard的访问端口
    4. kubectl get svc -A | grep kubernetes-dashboard

    3.登录然后访问,需要获取访问令牌

  • 相关阅读:
    深入理解享元模式(Flyweight Pattern)及其实际应用
    GBase 8c V3.0.0数据类型——数组函数
    【SA8295P 源码分析】112 - QNX AIS Camera 出图代码过程详解 之 VFEDriver 源码分析(本文未完,待更新...)
    还在不停切换聊天窗口进行回复的客服请看过来
    VoLTE端到端业务详解 | 空口主要特性功能
    CF1579D (1400) 贪心+优先队列
    QWeb 语法
    07 hdfs 集群搭建
    社交软件用户画像分析,社交网络数据可视化
    力扣(LeetCode)7. 整数反转(C++)
  • 原文地址:https://blog.csdn.net/qq_21997183/article/details/127410181