美文网首页
Centos7-k8s 服务部署

Centos7-k8s 服务部署

作者: AveryWang | 来源:发表于2022-12-16 13:34 被阅读0次

    1 基础环境配置

    systemctl stop firewalld # 关闭防火墙
    systemctl disable  firewalld # 开机禁用防火墙
    sed -i  's/enforcing/disabled/' /etc/selinux/config # 关闭selinux
    setenforce 0  # 临时关闭selinux
    swapoff -a  # 临时关闭swap(k8s禁止虚拟内存以提高性能)
    sed -ri 's/.*swap.*/#&/' /etc/fstab # 永久关闭swap
    wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo # 更新yum资源
    yum install ntpdate -y ntpdate time.windows.com
    

    2 master添加hosts

    查看本机ip

    ip a
    
    eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP group default qlen 1000
        link/ether 52:54:00:2b:83:f6 brd ff:ff:ff:ff:ff:ff
        inet 10.0.4.13/22 brd 10.0.7.255 scope global eth0
           valid_lft forever preferred_lft forever
        inet6 fe80::5054:ff:fe2b:83f6/64 scope link
    

    编辑hosts

    cat >> /etc/hosts << EOF
    10.0.4.13 k8smater
    EOF
    

    3 设置网桥参数

    每个机器都加,将桥接的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
    

    5 安装docker

    curl -fsSL https://get.docker.com | bash -s docker --mirror Aliyun
    

    修改配置

    vim /etc/docker/daemon.json
    
    {
    "exec-opts": ["native.cgroupdriver=systemd"],
    "log-driver": "json-file",
    "log-opts": {
    "max-file": "3",
    "max-size": "100m"
    },
    "storage-driver": "overlay2",
    "storage-opts": [
    "overlay2.override_kernel_check=true"
    ],
    "registry-mirrors": ["https://www.docker-cn.com"]
    }
    
    
    systemctl start docker.service  # 启动 docker
    systemctl  status docker.service # 查看启动状态
    systemctl  enable docker.service # 开机设置启动 
    

    6 安装 keubeadm kebelet 和 keubctl

    添加yum

    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=0 
    repo_gpgcheck=0 
    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-1.23.1 kubeadm-1.23.1 kubectl-1.23.1
    
    systemctl enable kubelet.service # 开启启动
    

    7 部署服务

    kubeadm reset # 重置节点
    
    kubeadm init \
    --apiserver-advertise-address=10.0.4.13 \ # 内网地址
    --image-repository registry.aliyuncs.com/google_containers \
    --kubernetes-version v1.23.1 \
    --service-cidr=10.1.0.0/16 \
    --pod-network-cidr=10.244.0.0/16 
    

    启动次成功输出

    正常输出:
    Your Kubernetes control-plane has initialized successfully!
    
    To start using your cluster, you need to run the following as a regular user:
    
      mkdir -p $HOME/.kube
      sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
      sudo chown $(id -u):$(id -g) $HOME/.kube/config
    
    Alternatively, if you are the root user, you can run:
    
      export KUBECONFIG=/etc/kubernetes/admin.conf
    
    You should now deploy a pod network to the cluster.
    Run "kubectl apply -f [podnetwork].yaml" with one of the options listed at:
      https://kubernetes.io/docs/concepts/cluster-administration/addons/
    
    Then you can join any number of worker nodes by running the following on each as root:
    
    kubeadm join 10.0.4.13:6443 --token on4xnv.d7hsx0q1kcs3xkjc \
      --discovery-token-ca-cert-hash sha256:f098e61728a0064e213ef10a22b4463a452d1491795295335f6b7e09cf1cd3f0
    

    若异常,使用命令查看状态及详细异常信息

    systemctl status  kubelet # 运行状态
    
    journalctl -xefu kubelet    # 异常详细信息
    

    配置 kube

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

    允许master部署节点

    kubectl taint nodes vm-4-3-centos  node-role.kubernetes.io/master-
    

    node节点配置
    向集群添加新节点,执行 kubeadmin init 之后执行kuneadmin join 命令

    kubeadm join 10.0.4.3:6443 --token 4j4bqj.0dt7upnzst88gc6p \
        --discovery-token-ca-cert-hash sha256:d44a020baa88fa5430c2f2828613a17009fc891a0b573eb0ae0180bfa10595ec
    

    8 部署nginx

    创建 nginx deployment

    kubectl create deployment nginx --image=nginx 
    

    创建 nginx service
    target-port:内部端口 容器服务访问
    port:外部端口 服务器内部访问

    kubectl expose  deployment nginx --port=80 --target-port=80 --type=NodePort
    

    输出

    NAME    TYPE       CLUSTER-IP     EXTERNAL-IP   PORT(S)        AGE
    nginx   NodePort   10.1.226.251   <none>        80:30860/TCP   64s
    

    10.1.226.251:80 容器地址 内部访问
    127.0.0.1:30860 服务器地址 外部访问

    相关文章

      网友评论

          本文标题:Centos7-k8s 服务部署

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