• 在Linux中进行K8s部署


    准备工作

    部署K8s集群对服务器的要求:

    1)3台以上装有CentOS7.7版本以上的64位系统的服务器;

    2)每台服务器的硬件配置都是内存最少2G,CPU至少双核,硬盘至少30GB;

    3)集群中所有服务器之间网络互通;

    4)可以访问外网,需要拉取镜像;

    5)禁止swap分区

    配置环境

    第一步,关闭防火墙和selinux。

    命令:systemctl stop firewalld

    systemctl disable firewalld

    # 永久关闭selinux

    sed -i 's/enforcing/disabled/' /etc/selinux/config

    # 临时禁用selinux

    setenforce 0

    第二步,关闭swap分区。

    # 临时关闭

    命令:swapoff -a

    # 永久关闭

    命令:sed  -ri  's/.*swap.*/#&/'  /etc/fstab

    第三步,添加主机名与IP对应关系(三台主机都执行)。

    命令:echo '''x.x.x.108 k8s-master-108 y.y.y.107 k8s-node-107 z.z.z.105 k8s-node-105''' >> /etc/hosts

    第四步,各自修改主机名。

    命令:hostnamectl set-hostname k8s-master-108

    hostnamectl set-hostname k8s-node-107

    hostnamectl set-hostname k8s-node-105

    第五步,设置网桥参数(三台主机都执行)。

    以下net.ipv4.ip_forward如存在=0,修改为1即可

    命令:cat > /etc/sysctl.d/k8s.conf << EOF

    net.bridge.bridge-nf-call-ip6tables = 1

    net.bridge.bridge-nf-call-iptables = 1

    EOF

    sysctl --system

    安装docker18.09.9(三台服务器都一样)

    第一步,卸载旧版本docker。

    若系统中已安装旧版本docker,则需要卸载旧版本docker以及与旧版本docker相关的依赖项。

    命令:yum remove docker docker-client docker-client-latest docker-common docker-latest docker-latest-logrotate docker-logrotate docker-engine

    第二步,安装gcc依赖。

    命令:yum -y install gcc gcc-c++

    第三步,使用Docker仓库进行安装。

    在新主机上首次安装Docker Engine-Community之前,需要设置Docker仓库。之后,可以从仓库安装和更新Docker。

    # 设置仓库,安装所需的软件包。

    命令:yum install -y yum-utils device-mapper-persistent-data lvm2

    # 设置稳定的仓库,使用官方源地址(比较慢)

    命令:yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo

    # 可以选择国内的一些源地址,如阿里云

    命令:yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

    # 可以选择国内的一些源地址,如清华大学源

    命令:yum-config-manager --add-repo https://mirrors.tuna.tsinghua.edu.cn/docker-ce/linux/centos/docker-ce.repo

    第四步,安装Docker Engine-Community。

    # 安装特定版本的Docker Engine-Community

    # 列出存储库中可用的版本并按版本号从高到低进行排序

    命令:yum list docker-ce --showduplicates | sort -r

    # 通过其完整的软件包名称安装特定版本,如docker-ce-18.09.9。

    命令:yum install docker-ce-18.09.9 docker-ce-cli-18.09.9 containerd.io

    第五步,启动Docker。

    命令:systemctl enable docker

    systemctl start docker

    systemctl restart docker

    第六步,验证Docker Engine-Community是否正确安装。

    命令:docker version

    docker run hello-world

    若结果显示“Hello from Docker!”,则说明Docker Engine-Community正确安装。

    部署Kubernetes Master

    第一步,添加k8s阿里云YUM软件源。

    命令:cat < /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

    第二步,安装kubeadmkubelet和kubectl

    命令:yum makecache fast

    yum -y install kubelet-1.16.0 kubeadm-1.16.0 kubectl-1.16.0

    systemctl start kubelet

    systemctl enable kubelet

    第三步,初始化k8s。

    命令:kubeadm init --image-repository registry.aliyuncs.com/google_containers --kubernetes-version v1.16.0 --apiserver-advertise-address x.x.x.108 --token-ttl 0

    若结果显示“Your Kubernetes control-plane has initialized successfully!”,则说明安装成功,然后根据提示,分别执行下面的命令:

    mkdir -p $HOME/.kube

    sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config

    sudo chown $(id -u):$(id -g) $HOME/.kube/config

    第四步,记住node加入集群的命令。

    执行“kubeadm init”成功后,会返回node节点加入集群的命令,后面要在node节点上执行,需要保存下来。

    # 获取node加入集群的命令

    命令:kubeadm token create --print-join-command

    # 查看此时master的状态

    命令:kubectl get nodes

    若此时master处于NotReady状态,则暂时不用管。

    部署Kubernetes Node

    第一步,添加k8s阿里云YUM软件源。

    命令:cat < /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

    第二步,安装kubeadmkubelet和kubectl

    命令:yum makecache fast

    yum -y install kubelet-1.16.0 kubeadm-1.16.0 kubectl-1.16.0

    systemctl start kubelet

    systemctl enable kubelet

    第三步,加入集群。

    # 可以登录master节点,获取node加入集群的命令

    命令:kubeadm token create --print-join-command

    # 可以登录node节点,加入集群

    命令:kubeadm join x.x.x.108:6443 --token zerect.sbegb9a9773ak4t1     --discovery-token-ca-cert-hash sha256:39996173db4cb75ecae91263b782de50ba77b7ed866313f2ff9ed03e488088d8

    # 加入集群成功后,可以登录master节点,查看是否有加入的节点并查看此时master的状态。

    命令:kubectl get nodes

    部署容器网络插件(在master上安装)

    第一步,登录master节点,新建fannel配置文件。

    在/root文件夹中新建kube-flannel.yml文件,然后登录网址:xw_yaml/kube-flannel.yml at main · xuwei777/xw_yaml · GitHub,复制粘贴代码到新建的kube-flannel.yml文件中。

    第二步,安装fannel

    命令:kubectl apply -f kube-flannel.yml

    kubectl get pods -n kube-system

    第三步,查看master的状态。

    命令:kubectl get nodes

    若此时master处于Ready状态,则说明fannel安装成功。

    k8s常用命令

    # 查看pod,service,endpoints,secret等的状态

    # 查看详细信息可以加上-o wide

    # 其他namespace的指定为-n namespace名

    命令:kubectl get 组件名

    kubectl get -o wide 组件名

    kubectl get -n namespace名

    # 创建和变更一个yaml文件内资源,也可以是目录,目录内包含一组yaml文件

    命令:kubectl apply -f xxx.yaml

    # 删除一个yaml文件内资源,也可以是目录,目录内包含一组yaml文件

    命令:kubectl delete -f xxx.yaml

    # 查看资源状态

    命令:kubectl get pod

    kubectl describe pod pod名

    # 查看pod日志,用于pod状态未就绪的故障排查

    命令:kubectl get pod

    kubectl logs pod名

    # 查看node节点或者是pod资源(cpu,内存资源)使用情况

    命令:kubectl top 组件名

    # 进入pod内部

    命令:kubectl get pod

    kubectl exec -ti pod名 /bin/bash

  • 相关阅读:
    计算机毕业设计ssmEE的仓库管理系统93c6b系统+程序+源码+lw+远程部署
    云安全【阿里云ECS攻防】
    《谷粒商城》开发记录 12:购物车和订单
    HTML5期末大作业:基于html企业官网项目的设计与实现【艺术官网】
    难以理解:摄像头APP,我测试好好的,发给别人就用不了
    业务开发时,接口不能对外暴露的解决方案
    Spring中bean的注入方式
    2022 最新 互联网 Java 工程师面试题
    mysql与msql2数据驱动
    光伏含氟废水吸附处理
  • 原文地址:https://blog.csdn.net/weixin_43268590/article/details/126509973