温馨提示×

如何自定义centos上的k8s配置

小樊
47
2025-07-31 18:40:59
栏目: 智能运维

在CentOS上自定义Kubernetes(k8s)配置涉及多个步骤,包括网络配置、防火墙设置、SELinux关闭、Docker安装、Kubernetes组件安装以及网络插件的配置。以下是一个详细的指南:

1. 网络配置

  • 查看当前网络状态

    ip addr
    
  • 配置网络接口: 编辑网络配置文件,例如 /etc/sysconfig/network-scripts/ifcfg-ens33,设置静态IP地址、子网掩码、网关和DNS服务器。

    DEVICE=ens33
    BOOTPROTO=static
    ONBOOT=yes
    IPADDR=192.168.1.100
    NETMASK=255.255.255.0
    GATEWAY=192.168.1.1
    DNS1=8.8.8.8
    DNS2=8.8.4.4
    
  • 备份配置文件

    cp ifcfg-ens33 ifcfg-ens33.backup
    
  • 重启网络服务

    systemctl restart network
    
  • 验证网络连接

    ping www.baidu.com
    

2. 防火墙和SELinux设置

  • 关闭防火墙

    systemctl stop firewalld
    systemctl disable firewalld
    
  • 关闭SELinux

    setenforce 0
    sed -i 's/^SELINUX=enforcing$/SELINUX=disabled/' /etc/selinux/config
    

3. 关闭Swap分区

  • 临时禁用Swap

    swapoff -a
    
  • 永久禁用Swap(编辑 /etc/fstab 文件):

    sed -i 's/.swap./#&/' /etc/fstab
    

4. 安装Docker

  • 删除旧版本Docker

    yum remove docker docker-client docker-client-latest docker-common docker-latest docker-latest-logrotate docker-logrotate docker-engine
    
  • 安装Docker

    yum install -y yum-utils
    yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
    yum install docker-ce-20.10.9 docker-ce-cli-20.10.9 containerd.io
    
  • 配置Docker守护进程

    cat <<EOF > /etc/docker/daemon.json
    {
      "exec-opts": ["native.cgroupdriver=systemd"]
    }
    EOF
    systemctl daemon-reload
    systemctl restart docker
    systemctl restart kubelet
    

5. 安装Kubernetes组件

  • 修改仓库

    cat <<EOF > /etc/yum.repos.d/kubernetes.repo
    [kubernetes]
    name=Kubernetes
    baseurl=https://mirrors.aliyuncs.com/kubernetes/yum/repos/kubernetes-el7-x86_64/
    enabled=1
    gpgcheck=1
    gpgkey=https://mirrors.aliyuncs.com/kubernetes/yum/doc/yum-key.gpg
    EOF
    
  • 安装Kubernetes组件

    yum install kubelet-1.22.2 kubeadm-1.22.2 kubectl-1.22.2 -y
    systemctl enable kubelet && systemctl start kubelet
    

6. 配置网络插件

  • 安装Flannel网络插件
    kubectl apply -f https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.yml
    

7. 集群部署

  • 初始化Master节点

    kubeadm init --apiserver-advertise-address 192.168.1.100 --image-repository registry.aliyuncs.com/google_containers --kubernetes-version v1.22.2 --control-plane-endpoint k8s-master --service-cidr 172.16.0.0/16 --pod-network-cidr 10.244.0.0/16
    
  • 加入Worker节点: 按照Master节点输出的指示,将每个Worker节点加入到集群中。

8. 配置kubectl命令自动补全

  • 安装bash-completion

    yum install -y bash-completion
    
  • 配置kubectl命令自动补全

    echo 'source /usr/share/bash-completion/bash_completion' >> ~/.bashrc
    echo 'source <(kubectl completion bash)' >> ~/.bashrc
    source ~/.bashrc
    

9. 测试集群

  • 测试k8s集群

    kubectl create deployment httpd --image=httpd
    kubectl expose deployment httpd --port=80 --type=NodePort
    kubectl get pod | grep -i httpd
    
  • 测试coredns域名解析

    kubectl exec -it busybox -- nslookup kubernetes.default
    kubectl exec -it busybox -- nslookup kube-dns.kube-system
    

0