一 k8s简介
k8s官方中文网站
master节点:master 节点是kubernets集群的控制节点,负责整个集群的控制
- kube-aposerver :集群控制的入口,提供 HTTP REST服务
- kube-controller-manager:所有资源对象的自动化控制中心
- kube-schedler:负责 pod 调度
Node节点:node节点是集群的工作节点
- kubelet:负责pod的创建,启动,监控等等
- kube-proxy:实现kubernets service的通信和负载均衡
- pod:pod是kubernets最基本的部署调度单元
- Replica=2: 是pod副本的抽象,用于解决pod的扩容和伸缩
- Deployment: 表示部署
- service:重要的资源对象,定义访问入口
- kube-proxy: 代理 做端口转发,相当于负载均衡器
- etcd:kubernets的配置文件
二 ,部署k8s集群
部署节点
计算机 IP master 192.168.1.110 node1 192.168.1.111
1. 关闭防火墙,swap分区,内核参数修改
[root@master ~]# swapoff -a ##这是临时关闭 ##若需要永久关闭,将swap分区取消挂载 [root@master ~]# modprobe br_netfilter ##用于桥接流量转发至iptables [root@master ~]# echo "modprobe br_netfilter " >> /etc/profile [root@master ~]# cat > /etc/sysctl.d/k8s.conf <<EOF > net.bridge.bridge-nf-call-ip6tables =1 > net.bridge.bridge-nf-call-iptables=1 > net.ipv4.ip_forward = 1 > EOF [root@master ~]# cat /etc/sysctl.d/k8s.conf net.bridge.bridge-nf-call-ip6tables = 1 net.bridge.bridge-nf-call-iptablees = 1 net.ipv4.ip_forward = 1 [root@master sysctl.d]# sysctl -p /etc/sysctl.d/k8s.conf ##加载k8s文件
2.安装docker和k8s
##安装k8s 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 setenforce 0 yum install -y kubelet kubeadm kubectl systemctl enable kubelet && systemctl start kubelet ##开机启动
安装docker # step 1: 安装必要的一些系统工具 sudo yum install -y yum-utils device-mapper-persistent-data lvm2 # Step 2: 添加软件源信息 sudo yum-config-manager --add-repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo # Step 3 sudo sed -i 's+download.docker.com+mirrors.aliyun.com/docker-ce+' /etc/yum.repos.d/docker-ce.repo # Step 4: 更新并安装Docker-CE sudo yum makecache fast sudo yum -y install docker-ce # Step 4: 开启Docker服务 sudo service docker start # 注意: # 官方软件源默认启用了最新的软件,您可以通过编辑软件源的方式获取各个版本的软件包。例如官方并没有将测试版本的软件源置为可用,您可以通过以下方式开启。同理可以开启各种测试版本等。 # vim /etc/yum.repos.d/docker-ce.repo # 将[docker-ce-test]下方的enabled=0修改为enabled=1 # # 安装指定版本的Docker-CE: # Step 1: 查找Docker-CE的版本: # yum list docker-ce.x86_64 --showduplicates | sort -r # Loading mirror speeds from cached hostfile # Loaded plugins: branch, fastestmirror, langpacks # docker-ce.x86_64 17.03.1.ce-1.el7.centos docker-ce-stable # docker-ce.x86_64 17.03.1.ce-1.el7.centos @docker-ce-stable # docker-ce.x86_64 17.03.0.ce-1.el7.centos docker-ce-stable # Available Packages # Step2: 安装指定版本的Docker-CE: (VERSION例如上面的17.03.0.ce.1-1.el7.centos) # sudo yum -y install docker-ce-[VERSION]
3. 安装docker-ce
[root@master slurm-21.08.8]# yum -y install yum-utils device-mapper-persistent-data lvm2 [root@node1 slurm-21.08.8]# yum -y install docker-ce docker-ce-cli containerd.io -y ##安装完成
4.修改docker cgourps
[root@master docker]# vim /etc/docker/daemon.json [root@master docker]# cat /etc/docker/daemon.json { "exec-opts":["native.cgroupdriver=systemd"] } [root@node1 log]# systemctl daemon-reload [root@node1 log]# systemctl restart docker
5.安装docker k8s镜像
964 kubelet --version ##查看kubelet版本 965 kubeadm config images list ##查看该版本需要的安装装 ##其全部采用阿里云的节点,默认的镜像访问不过去 966 docker pull registry.aliyuncs.com/google_containers/kube-apiserver:v1.20.15 967 docker pull registry.aliyuncs.com/google_containers/kube-controller-manager:v1.20.15 968 docker pull registry.aliyuncs.com/google_containers/kube-scheduler:v1.20.15 969 docker pull registry.aliyuncs.com/google_containers/kube-proxy:v1.20.15 970 docker pull registry.aliyuncs.com/google_containers/pause:3.2 971 docker pull registry.aliyuncs.com/google_containers/etcd:3.4.13-0 972 docker pull registry.aliyuncs.com/google_containers/coredns:1.7.0 master节点初始化 981 kubeadm init --apiserver-advertise-address=192.168.1.110 --image-repository registry.aliyuncs.com/google_containers --kubernetes-version v1.20.6 --service-cidr=10.96.0.0/12 --pod-network-cidr=10.244.0.0/16
中间可能会报很多错,等待系统集群响应,基本就是重启kubeadm服务,运行完会生成
节点文件
[root@master ~]# cat 1.txt 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 192.168.1.110:6443 --token e1nhwz.5hbalmmlla7o8v9q \ --discovery-token-ca-cert-hash sha256:ee13af1696f80b40cc2be4dccbd0525e4ce885d16e9a24e3f30aebbb854701a2 ##大致意思就是执行mkdir 命令 添加环境变量
子节点初始化
kubeadm join 192.168.1.110:6443 --token e1nhwz.5hbalmmlla7o8v9q \ --discovery-token-ca-cert-hash ##直接运行主节点的生成文件即可
查看节点
[root@master ~]# kubectl get nodes NAME STATUS ROLES AGE VERSION master NotReady control-plane,master 21h v1.20.6 node1 NotReady <none> 21h v1.20.6