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