1、Kubelet,一个负责 Kubernetes 控制平面和 Node 之间通信的进程;它管理在机器上运行的 Pod 和容器。
2、容器运行时(如 Docker)负责从注册表中拉取容器镜像、解包容器并运
行应用程序
二、组件 Master主控节点1、apiserver
集群统一入口,以restful方式,交给etcd存储。
2、scheduler
节点调度,选择node节点应用部署
3、controller-manager
处理集群中常规后台任务,一个资源对应一个控制器。
4、etcd
存储系统,用于保存集群相关数据。
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Dqvlk2dS-1633918257757)(C:Users211AppDataRoamingTyporatypora-user-imagesimage-20210928151401736.png)]
node工作节点1、kubelet
master派到node节点代表,管理本机容器。
2、kube-proxy
提供网络代理,负载均衡。
三、概念 1、pod最小部署单元
一组容器的集合
共享网络
生命周期是短暂
2、controller确保预期的pod副本数量
无状态应用部署
有状态应用部署
确保所有的node运行同一个Pod
一次性任务和定时任务
3、service定义一组pod的访问规则
四、k8s环境平台规划[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-5d33t7xm-1633918257759)(C:Users211AppDataRoamingTyporatypora-user-imagesimage-20210928153724798.png)]
1、部署集群的方式1)kubeadm
2)二进制包
2、准备需求集群互ping
访问外网
禁止swap分区
五、kubeadmin 1、初始化操作1、创建虚拟机3台
2、禁止swap分区
swapoff -a //临时 sed -ri 's/.*swap.*/#&/' /etc/fstab //永久
3、关闭防火墙
systemctl stop firewalld //临时关闭 systemctl disable firewalld //永久关闭
4、关闭selinux
sed -i 's/enforcing/disabled/' /etc/selinux/config //永久 setenforce 0 //临时关闭
5、给主机取名称
hostnamectl set-hostname k8smaster /k8snode1/k8snode2 //修改主机名
6、在master添加hosts
cat >> /etc/hosts <7、将桥接的ipv4流量传递到iptables的链
cat > /etc/sysctl.d/k8s.conf << EOF net.bridge.bridge-nf-call-iptables = 1 net.bridge.bridge-nf-call-iptable = 1 EOFsysctl --system //生效8、时间同步
yum install ntpdate -yntpdate time.windows.com2、安装三方支持 1)、安装dockerwget https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo -O /etc/yum.repos.d/docker-ce.repoyum -y install docker-ce-18.06.1.ce-3.e17systemctl enable docker && systemctl start docker //开机启动docker --version//查看镜像 cat > /etc/docker/daemon.json << EOF { "registry-mirrors":["https://b9pmyelo.mirror.aliyuncs.com"] } EOFdocker info //查看镜像源是否改成功2)、添加阿里云yum软件源cat > /etc/yum.repos.d/kubernetes.repo << EOF [kubernetes] name=Kubernetes baseurl=https://mirrors.aliyun.com/kubernetes/yum/repos/kubernetes-e17-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 //这个不行cat > /etc/yum.repos.d/kubernetes.repo <3)、安装kubeadm,kubelet和kubectl yum install -y kubelet-1.18.0 kubeadm-1.18.0 kubectl-1.18.0systemctl enable kubelet4)、在master机器上执行kubeadm init --apiserver-advertise-address=172.21.50.35 --image-repository registry.aliyuncs.com/google_containers --kubernetes-version v1.18.0 --service-cidr=10.96.0.0/12 --pod-network-cidr=10.244.0.0/16 //去掉斜杠,把命令集中在一行执行注释:由于外国的k8s不能访问,该成阿里云。
master主机地址改成自己的。
5)、在master机器上执行mkdir -p $HOME/.kube sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config sudo chown $(id -u):$(id -g) $HOME/.kube/config3、加入节点到主节点kubeadm join 172.21.50.35:6443 --token gnlql3.0xj8y9kkle7630ll --discovery-token-ca-cert-hash sha256:589006c1952acdd4c8208551a63088519e8002c4ee9697b47d466c741d817e9bkubectl get nodes //获取节点信息4、部署CNI网络插件wget https://raw.githubusercontent.com/coreos/flannel/master/documentation/kube-flannel.yml注释:默认镜像地址无法访问,sed命令修改为docker hub镜像仓库。
kubectl apply -f https://raw.githubusercontent.com/coreos/flannel/master/documentation/kube-flannel.yml kubectl get pods -n kube-system5、测试kubectl create deployment nginx --image=nginx kubectl expose deployment nginx --port=80 --type=NodePort //对外暴露端口 kubectl get pod,svc //查看信息六、常用命令kubectl get pods //获取pod信息 kubectl get nodes //获取nodes信息



