K8S安装


 

 

 

 

 

简单理解:

  docker默认是单机使用的,不可以跨主机,也没有高可用,所以生产环境一般不会单独使用docker跑应用,k8s主要是作为docker的一个调度器来使用,可以使容器实现跨节点通信,当一台运行容器的节点故障后,容器会自动迁移到其它可用节点上继续运行服务,目前比较常用的是k8s

k8s架构:k8s主要由master节点和node节点构成,而且常用操作都在master上操作,作为控制节点角色,node节点提供计算功能

master:

kubectl:k8s的所有操作都是通过kubectl指令操作的

REST API:k8s对外部服务提供的接口服务,例如图形化界面或者kubectl都会通过REST API接口下发指令来控制k8s

scheduler:调度器,例如创建pod,scheduler可以控制将pod分配到哪个pod节点

controller-manager:检测pod或者node的健康状态,并维持pod的正常运行,如果pod故障,controller-manger会自动修复,例如在启动一个pod副本

kubelet:代理软件,例如在master上对node节点下发的指令,都需要通过kubelet组建来告知各个组件

etcd:数据库,所有配置数据都存放在etcd数据库中

kubeproxy:在所有节点都需要运行kubeproxy,后期通过创建svc来将pod映射到外网,当外部通过svc-ip访问pod的时候就需要通过kubeporxy进行路由转发到pod

node:

pod:k8s环境运行的最小单位,一个pod中可以包含一个或多个容器

 

 

 

 

 

 

 

 

 

 

 

 

所有节点操作

1.修改centos时区校准时间    

timedatectl set-timezone Asia/Shanghai

yum install -y ntpdate

yum install -y update

ntpdate us.pool.ntp.org

 

 

2.下载安装docker

yum install -y yum-utils 

正确推荐使用国内的 yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

yum makecache fast 

yum install docker-ce docker-ce-cli containerd.io 

systemctl start docker 

阿里云镜像加速  https://www.aliyun.com/product/acr

文件目录 /etc/docker/daemon.json

{
 "registry-mirrors": ["https://qiyb9988.mirror.aliyuncs.com"]
}

systemctl daemon-reload

systemctl enable docker

systemctl restart docker

 

2.给每一台机器设置主机名

2.1所有主机修改

hostname 主机名  或者 hostnamectl set-hostname 主机名 --->  重启

2.2所有主机查看 hostname 

3.修改添加master节点目录 vim  /etc/hosts

 4.所有主机安装kubeadm\kubelet等

4.1所有主机去阿里云上面下载kubeadm\kubelet等 ----- > https://developer.aliyun.com/mirror/kubernetes?spm=a2c6h.13651102.0.0.6a151b11acVrNm

 

4.2查看所有主机 安装报错日志  cat /var/log/messages

4.3设置所有主机 kubelet 内存

  vim /etc/sysconfig/kubelet   ---->  KUBELET_EXTRA_ARGS="--fail-swap-on=false"

4.4 查看所有主机网桥IP是都为1

  cat /proc/sys/net/bridge/bridge-nf-call-ip6tables

  cat /proc/sys/net/bridge/bridge-nf-call-iptables

4.5所有主机关闭防火墙

  systemctl stop firewalld && systemctl disable firewalld

4.6 所有主机查看kubelet配置 与docker 是都一致

   使用docker info 查看

 

修改该配置 vim  /etc/docker/daemon.json

{
"registry-mirrors": ["https://exbabp11.mirror.aliyuncs.com"],  #修改镜像仓库
"exec-opts": ["native.cgroupdriver=systemd"]    #修改配置
}

 

4.7 node节点安装的镜像 都是通过阿里下载 重新打标签处理

 

  • registry.cn-hangzhou.aliyuncs.com/google_containers/kube-proxy:v1.23.0 
  • k8s.gcr.io/kube-proxy:v1.23.0
  • rancher/mirrored-flannelcni-flannel-cni-plugin:v1.0.0
  • k8s.gcr.io/pause:3.6 
  • registry.cn-hangzhou.aliyuncs.com/google_containers/pause:3.6
  • registry.cn-hangzhou.aliyuncs.com/k8sos/flannel:v0.13.1-rc2

注意 master节点要下其他镜像

 

docker master节点下载K8S镜像

docker pull registry.cn-hangzhou.aliyuncs.com/google_containers/kube-apiserver:v1.23.0
docker tag registry.cn-hangzhou.aliyuncs.com/google_containers/kube-apiserver:v1.23.0 k8s.gcr.io/kube-apiserver:v1.23.0


docker pull registry.cn-hangzhou.aliyuncs.com/google_containers/kube-scheduler:v1.23.0
docker tag registry.cn-hangzhou.aliyuncs.com/google_containers/kube-scheduler:v1.23.0 k8s.gcr.io/kube-scheduler:v1.23.0

 

docker pull registry.cn-hangzhou.aliyuncs.com/google_containers/kube-proxy:v1.23.0
docker tag registry.cn-hangzhou.aliyuncs.com/google_containers/kube-proxy:v1.23.0 k8s.gcr.io/kube-proxy:v1.23.0

 

docker pull registry.cn-hangzhou.aliyuncs.com/google_containers/pause:3.6
docker tag registry.cn-hangzhou.aliyuncs.com/google_containers/pause:3.6 k8s.gcr.io/pause:3.6

 

docker pull registry.cn-hangzhou.aliyuncs.com/google_containers/etcd:3.5.1-0
docker tag registry.cn-hangzhou.aliyuncs.com/google_containers/etcd:3.5.1-0 k8s.gcr.io/etcd:3.5.1-0

 

docker pull registry.cn-hangzhou.aliyuncs.com/google_containers/coredns:v1.8.6
docker tag registry.cn-hangzhou.aliyuncs.com/google_containers/coredns:v1.8.6 k8s.gcr.io/coredns/coredns:v1.8.6

 

docker pull registry.cn-hangzhou.aliyuncs.com/google_containers/kube-controller-manager:v1.23.0
docker tag registry.cn-hangzhou.aliyuncs.com/google_containers/kube-controller-manager:v1.23.0 k8s.gcr.io/kube-controller-manager:v1.23.0

 

 

4.8 master 节点初始化 

kubeadm init --pod-network-cidr=10.244.0.0/16 --service-cidr=10.96.0.0/12 --ignore-preflight-errors=Swap --kubernetes-version=1.23.0

成功   必须还要按照K8S提示安装.kube目录等信息

 

 

 

注意令牌有效时间;超时令牌会自动消失 要重新获取

 

 

查看kubelet令牌

kubeadm token list

创建kubelet令牌

kubeadm token create

获取身份sha256标识 

 openssl x509 -pubkey -in /etc/kubernetes/pki/ca.crt | openssl rsa -pubin -outform der 2>/dev/null | openssl dgst -sha256 -hex | sed 's/^.* //'

更换令牌与sha256 --->  kubeadm join 172.20.17.150:6443 --token xpjjqv.tzpr3bvjzfbfx8ns --discovery-token-ca-cert-hash sha256:ea3b344f88ae28ac48d77a68b4c37df7d518b9ee937327aed98ea56a7ae2e168

 

查看节点是否正常 及节点是否都添加上来

kubectl get nodes

 4.9 node节点添加到 master节点 注意报错信息

kubeadm join 172.20.17.150:6443 --token 779p75.h48im60q8wdo903o --discovery-token-ca-cert-hash sha256:ea3b344f88ae28ac48d77a68b4c37df7d518b9ee937327aed98ea56a7ae2e168

 

5.卸载 kubernetes

kubeadm reset -f
modprobe -r ipip
lsmod
rm -rf ~/.kube/
rm -rf /etc/kubernetes/
rm -rf /etc/systemd/system/kubelet.service.d
rm -rf /etc/systemd/system/kubelet.service
rm -rf /usr/bin/kube*
rm -rf /etc/cni
rm -rf /opt/cni
rm -rf /var/lib/etcd
rm -rf /var/etcd

 

 

 


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM