1.k8s的作用

        k8s是容器集群管理系统,是一个开源平台,能够实现容器集群的自动化部署,自动扩展缩2.容,自动维护等。

2.k8s集群架构

        (1)master(管理节点):

                提供集群的控制

                对集群进行全局决策

                检测和响应集群事件

        核心组件:APIServer、Scheduler、ControllerManager、etcd

        (2)node(计算节点)

               运行容器的实际节点

                提供运行环境

                在多个节点上运行

                水平扩展

        核心组件:kubelet、kube-proxy、Runtime

        (3)image(镜像仓库)

                存储镜像

                为节点提供镜像支持

        组件:Registry或Harbor

3.kubernetes安装

        (1)安装控制节点

                官网下载地址:https://packages.cloud.google.com

                配置软件仓库:

                        把下载好的资源更新到目录下

createrepo --update /var/ftp/rpms/

                系统环境配置:

                        配置yum安装源

 vim /etc/yum.repos.d/k8s.repo

[k8s]

name=k8s

baseurl="软件包源地址"

enabled=1

gpgcheck=0

#禁用firewall和swap

sed '/swap/d' -i /etc/fstab

swapoff -a

yum -y remove firewalld-*

                安装软件包:

# yum -y install kubeadm kubelet kubectl containerd.io ipvsadm ipset iproute-tc

# containerd config default > /etc/containerd/config.toml

# vim /etc/containerd/config.toml

61:     sandbox_image = "harbor:443/k8s/pause:3.9"
125:    SystemdCgroup = true
154 行新插入: 
        [plugins."io.containerd.grpc.v1.cri".registry.mirrors."docker.io"]
        endpoint = ["私有镜像仓库地址"]                      .       
        [plugins."io.containerd.grpc.v1.cri".registry.mirrors."harbor:443"]               endpoint = ["私有镜像仓库地址"]                       
        [plugins."io.containerd.grpc.v1.cri".registry.configs."私有仓库的地址".tls]      
        insecure_skip_verify = true

#systemctl enable --now kubelet containerd

                 配置内核参数

#加载内核模块

# vim /etc/modules-load.d/containerd.conf

 br_netfilter

xt_conntrack

#systemctl start systemd-modules-load.service

#设置内核参数

net.ipv4.ip_forward = 1
net.bridge.bridge-nf-call-iptables = 1
net.bridge.bridge-nf-call-ip6tables = 1
net.netfilter.nf_conntrack_max = 1000000

sysctl -p /etc/sysctl.d/99-kubernetes-cri.conf

                导入k8s镜像

#vim /etc/docker/daemon.json

   

{
   "registry-mirrors":["https://harbor:443"],
   "insecure-registries":["harbor:443"]
}

#systemctl enable --now docker

登录harbor仓库

#docker login harbor:443

#docker load -i init/v1.29.2.tar.xz

#docker images | while read i t _

do

[[ "${t}" == "TAG" ]] && continue
[[ "${i}" =~ ^"harbor:443/".+ ]] && continue

docker tag ${i}:${t} harbor:443/k8s/${i##*/}:${t}

docker push harbor:443/k8s/${i##*/}:${t}

docker rmi ${i}:${t} harbor:443/k8s/${i##*/}:${t}

done

                设置tap键

# source <(kubeadm completion bash|tee /etc/bash_completion.d/kubeadm)
# source <(kubectl completion bash|tee /etc/bash_completion.d/kubectl)

                master安装

#vim /root/init/init.yaml

13: advertiseAddress: master主机地址

#测试系统环境,查看日志文件内是否有报错

#kubeadm init --config=init/init.yaml --dry-run 2>error.log

#cat error.log

#主控节点初始化

#rm -rf error.log /etc/kubernetes/tmp

#kubeadm init --config=init/init.yaml | tee init/init.log

#管理授权,直接复制运行即可

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

#查看节点

#kubectl get nodes

        (2)安装网络插件

                上传镜像

软件地址:https://github.com/projectalico/calico

#docker load -i calico.tar.xz

#docker images | while read i t _

do

[[ "${t}" == "TAG" ]] && continue
[[ "${i}" =~ ^"harbor:443/".+ ]] && continue
docker tag ${i}:${t} harbor:443/plugins/${i##*/}:${t}
docker push harbor:443/plugins/${i##*/}:${t}
docker rmi ${i}:${t} harbor:443/plugins/${i##*/}:${t}

done

                安装calico

#sed -ri 's,^(\s*image: )(.*/)?(.+),\1harbor:443/plugins/\3,' calico.yaml

#kubectl apply -f calico.yaml

        

Logo

有“AI”的1024 = 2048,欢迎大家加入2048 AI社区

更多推荐