zoukankan      html  css  js  c++  java
  • kubernetes v1.13.1集群

    基础环境配置

    swapoff -a
    sed -i '/swap/d' /etc/fstab
    systemctl stop firewalld
    systemctl disable firewalld
    setenforce 0
    sed -i 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/selinux/config
    iptables -P FORWARD ACCEPT
    

    添加docker源和安装docker

    yum install -y yum-utils
    yum-config-manager --add-repo https://download.daocloud.io/docker/linux/centos/docker-ce.repo
    yum install -y --setopt=obsoletes=0 docker-ce-18.06.1.ce* 
    

    添加kubernetes源和安装kubeadm,kubelet,kubectl,ipvsadm

    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
    yum install -y kubelet kubeadm kubectl ipvsadm
    

    修改内核参数

    cat << EOF >  /etc/sysctl.d/k8s.conf
    net.bridge.bridge-nf-call-ip6tables = 1
    net.bridge.bridge-nf-call-iptables = 1
    vm.swappiness=0
    EOF
    

    加载内核模块

    cat << EOF >  /etc/modules-load.d/k8s.module.conf
    ip_vs
    ip_vs_rr
    ip_vs_wrr
    ip_vs_sh
    nf_conntrack_ipv4
    br_netfilter
    EOF
    
    modprobe ip_vs
    modprobe ip_vs_rr
    modprobe ip_vs_wrr
    modprobe ip_vs_sh
    modprobe nf_conntrack_ipv4
    modprobe br_netfilter
    
    sysctl --system
    sysctl -p /etc/sysctl.d/k8s.conf
    

    配置国内加速镜像,私有仓库

    sed -i 's@ExecStart.*@& --registry-mirror=http://3272dd08.m.daocloud.io@' /usr/lib/systemd/system/docker.service
    systemctl daemon-reload
    systemctl enable docker
    systemctl start docker
    systemctl status docker
    

    配置kubelet

    DOCKER_CGROUPS=$(docker info | grep 'Cgroup' | cut -d' ' -f3)
    echo $DOCKER_CGROUPS
    cat >/etc/sysconfig/kubelet<<EOF
    KUBELET_EXTRA_ARGS="--cgroup-driver=$DOCKER_CGROUPS --pod-infra-container-image=registry.cn-hangzhou.aliyuncs.com/google_containers/pause-amd64:3.1"
    EOF
    systemctl daemon-reload
    systemctl enable kubelet && systemctl restart kubelet
    

    配置kubeadm

    apiVersion: kubeadm.k8s.io/v1beta1
    kind: ClusterConfiguration
    kubernetesVersion: stable
    imageRepository: registry.cn-hangzhou.aliyuncs.com/google_containers
     
    apiServer:
      certSANs:
      - "master01"
      - "master02"
      - "master03"
      - "192.168.xxx.xxa"
      - "192.168.xxx.xxb"
      - "192.168.xxx.xxc"
      - "192.168.xxx.vip"
      - "127.0.0.1"
     
    controlPlaneEndpoint: 192.168.1.200:6443
     
    etcd:
      external:
        endpoints:
        - https://192.168.xxx.xxa:2379
        - https://192.168.xxx.xxb:2379
        - https://192.168.xxx.xxc:2379
        caFile: /etc/etcd/certs/ca.pem
        certFile: /etc/etcd/certs/etcd.pem
        keyFile: /etc/etcd/certs/etcd-key.pem
    networking:
      podSubnet: 10.244.0.0/16
    

    转化为新的配置文件

    kubeadm config migrate  --old-config kubeadm-config.yaml --new-config new.yaml
    

    拉取镜像

    kubeadm config images pull --config new.yaml
    

    初始化

    kubeadm init --config new.yaml
    

    其他节点加入控制面

    kubeadm join 192.168.xxx.vip:6443 --token 3lrpta.i6nyygp4fdyhdza3 --discovery-token-ca-cert-hash sha256:74151ca281c1034a7bcc45176d6f139b0e9d33a8929186e36d8a387d658c153c  --experimental-control-plane
    

    kubeconfig中的client-certificate-data字段值是证书的base64编码后的文本,将文本解码还原为证书格式

    cat /etc/kubernetes/admin.conf | grep client-certificate-data | awk -F ': ' '{print $2}' | base64 -d > /root/client.crt
    cat /etc/kubernetes/admin.conf | grep client-key-data | awk -F ': ' '{print $2}' | base64 -d > /root/client.key
    
    openssl x509 -pubkey -in /etc/kubernetes/pki/ca.crt | openssl rsa -pubin -outform der 2>/dev/null | openssl dgst -sha256 -hex | sed 's/^.* //'
    

    安装pod网络

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

      

  • 相关阅读:
    ABP框架
    ABP框架
    VS2017调试器无法附加到IIS进程(w3wp.exe)
    c# 动态实例化一个泛型类
    在CentOS7.1上安装Gitlab碰到的问题及解决方法
    MongoDB
    在ABP模板工程中使用MySql
    增加VirtualBox虚拟机的磁盘空间大小(Host:Win7 VirtualBox5.0.16 VM:Win10)
    Spring中Bean及@Bean的理解
    @Bean 的用法
  • 原文地址:https://www.cnblogs.com/gandefeng/p/10183753.html
Copyright © 2011-2022 走看看