国产性生交xxxxx免费-国产中文字幕-啊灬啊灬啊灬快灬高潮了,亚洲国产午夜精品理论片在线播放 ,亚洲欧洲日本无在线码,色爽交视频免费观看

鍋爐信息網 > 鍋爐知識 > 鍋爐學習

K8S 集群安裝部署

發布時間:

1.關閉防火墻 systemctl stop firewalld  systemctl disable firewalld   2.網橋過濾 cat <<EOF | sudo tee /etc/modules-load.d

1.關閉防火墻

systemctl stop firewalld
systemctl disable firewalld

2.網橋過濾

cat <<EOF | sudo tee /etc/modules-load.d/k8s.conf
br_netfilter
EOF

cat <<EOF | sudo tee /etc/sysctl.d/k8s.conf
net.bridge.bridge-nf-call-ip6tables = 1
net.bridge.bridge-nf-call-iptables = 1
EOF
sudo sysctl --system

3.從阿里云服務器同步時間

yum -y install ntpdate
ntpdate http://time1.aliyun.com

刪除本地時間并設置時區為上海

rm -rf /etc/localtime
ln -s /usr/share/zoneinfo/Asia/Shanghai /etc/localtime

4.關閉swap分區

#臨時關閉:
swapoff -a
#永久關閉:
vi /etc/fstab
#將文件中的/dev/mapper/centos-swap這行代碼注釋掉
#/dev/mapper/centos-swap swap swap defaults 0 0
#確認swap已經關閉:若swap行都顯示 0 則表示關閉成功
free -m

5.配置hosts

cat <<EOF | sudo tee /etc/hosts
192.168.80.127 k8s-master01
192.168.80.128 k8s-node01
192.168.80.129 k8s-node02
192.168.80.130 k8s-node03
EOF

6.安裝docker

安裝docker 前置

yum install -y yum-utils device-mapper-persistent-data lvm2

添加阿里云的yum 源

yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

yum makecache fast
#查看版本
yum list docker-ce --showduplicates | sort -r
#安裝指定版本
yum -y install docker-ce-18.09.8
#檢查docker 版本
docker version
#開啟docker 服務
systemctl start docker
#開機啟動
systemctl enable docker

7.配置docker 容器驅動方式 Cgroup drivers

Container runtimes

支持四種方式

  • containerd
  • CRI-O
  • Docker Engine
  • Mirantis Container Runtime

mkdir -p /etc/docker
tee /etc/docker/daemon.json <<-'EOF'
{
"exec-opts": ["native.cgroupdriver=systemd"]
}
EOF

#重啟docker服務:
systemctl daemon-reload
systemctl restart docker

8.下載k8s相關鏡像

一般會遇到遇到檢測資源未通過,可以采用以下方式,如果還是出現問題,可以在下面的repo文件配置中關掉檢查

wget https://mirrors.aliyun.com/kubernetes/yum/doc/yum-key.gpg
wget https://mirrors.aliyun.com/kubernetes/yum/doc/rpm-package-key.gpg
rpm --import yum-key.gpg
rpm --import rpm-package-key.gpg

# 創建yum k8s 倉庫配置
vi /etc/yum.repos.d/kubernates.repo
# 復制一下內容到文件中
[kubernetes]
name=Kubernetes
baseurl=https://mirrors.aliyun.com/kubernetes/yum/repos/kubernetes-el7-x86_64
enabled=1
gpgcheck=1
# 是否檢測資源,如果為1時安裝失敗,可以設置為0 關閉檢測
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
#保存退出
:wq

yum clean all
yum -y makecache
#獲取版本信息
yum list kubelet --showduplicates | sort -r

#安裝k8s 相關套件
yum install -y kubelet-1.23.5 kubeadm-1.23.5 kubectl-1.23.5

systemctl enable kubelet

查看集群需要的鏡像

kubeadm config images list

編寫腳本替換鏡像tag

mkdir -p /data
cd /data
vi images.sh
#!/bin/bash
# 下面的鏡像應該去除"http://k8s.gcr.io"的前綴,版本換成kubeadm config images list命令獲取到的版本
images=(
kube-apiserver:v1.23.5
kube-controller-manager:v1.23.5
kube-scheduler:v1.23.5
kube-proxy:v1.23.5
pause:3.6
etcd:3.5.1-0
coredns:1.8.6
)
for imageName in ${images[@]} ;
do
docker pull http://registry.cn-hangzhou.aliyuncs.com/google_containers/$imageName
docker tag http://registry.cn-hangzhou.aliyuncs.com/google_containers/$imageName http://k8s.gcr.io/$imageName
docker rmi http://registry.cn-hangzhou.aliyuncs.com/google_containers/$imageName
done
#保存退出
:wq
#執行腳本
sh /data/images.sh
#注意 cordns 鏡像路徑存在調整,需要對coredns 重新打一個tag
docker tag http://k8s.gcr.io/coredns:1.8.6 http://k8s.gcr.io/coredns/coredns:v1.8.6

# 注意 1.23.5版本中存在一個問題coredns 倉庫路徑與1.17不同,多一層路徑,需要重新tag一個鏡像
# docker tag http://k8s.gcr.io/coredns:1.8.6 http://k8s.gcr.io/coredns/coredns:v1.8.6

9.安裝calico network policy [CNI(Container network interface)]

docker pull calico/cni:v3.21.3
docker pull calico/pod2daemon-flexvol:v3.21.3
docker pull calico/node:v3.21.3
docker pull calico/kube-controllers:v3.21.3

#配置主機名
hostnamectl set-hostname k8s-master01

10.初始化集群 master

kubeadm init --apiserver-advertise-address=192.168.80.127 --kubernetes-version v1.23.5 --service-cidr=10.1.0.0/16 --pod-network-cidr=10.244.0.0/16

##看到以下結果表示成功
Your Kubernetes control-plane has initialized successfully!

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.80.127:6443 --token l9xgtp.crdwbikds1rt3iiv
--discovery-token-ca-cert-hash sha256:65a7aeb890ff889da742f7ad6dc336e09fcb5cb6c95909a99931c721fc36c4e1

11.初始化網絡插件

flannel方案

kubectl apply -f https://raw.githubusercontent.com/flannel-io/flannel/master/Documentation/kube-flannel.yml

calico方案(未實現)

curl https://projectcalico.docs.tigera.io/manifests/calico-etcd.yaml -o calico.yaml

kubectl apply -f calico.yaml

12.node 加入集群

kubeadm join 192.168.80.127:6443 --token csgdh3.h5i2rde8gmjvx255
--discovery-token-ca-cert-hash sha256:e396f402d4888d12a9694f4e5810c6757c41e15f38961b1386666bc15743422e

重新初始化:

kubeadm reset

問題:

  1. Coredns 一直處于創建狀態(calico 未解決方案,更換其他網絡插件--flanneld)



查看pod信息

kubectl describe pod coredns-64897985d-ghwtc -n kube-system

發現最后顯示 network: stat /var/lib/calico/nodename: no such file or directory:

Warning FailedCreatePodSandBox 6m20s (x5981 over 17h) kubelet (combined from similar events): Failed to create pod sandbox: rpc error: code = Unknown desc = failed to set up sandbox container "ecb5ac36e4c73944bfb0d180425232e88b378d9238ce8d40951721210178ec09" network for pod "coredns-64897985d-ghwtc": networkPlugin cni failed to set up pod "coredns-64897985d-ghwtc_kube-system" network: stat /var/lib/calico/nodename: no such file or directory: check that the calico/node container is running and has mounted /var/lib/calico/

touch /var/lib/calico/nodename
vi /var/lib/calico/nodename
192.168.80.127
#保存退出
:wq

2.flanneld 同樣出現上述coredns一直處于creating 狀態問題;

解決方案:

coredns狀態卡在ContainerCreating_鯤鵬BoostKit_鯤鵬論壇_華為云論壇 (huaweicloud.com)

步驟一:在所有節點(master和slave節點)刪除cni0,以及暫停k8s和docker。

kubeadm reset

systemctl stop kubelet

systemctl stop docker

rm -rf /var/lib/cni/

rm -rf /var/lib/kubelet/

rm -rf /etc/cni/

ifconfig cni0 down

ifconfig flannel.1 down

ifconfig docker0 down

ip link delete cni0

ip link delete flannel.1

步驟二:在所有節點重啟kubelet和docker

systemctl start kubelet

systemctl start docker

步驟三:重新執行kubeadm init的操作。

基于上述邏輯,猜測是網絡地址沖突導致。

問題列表:

1.物理機斷電重啟,集群環境未啟動,所有容器都沒啟動

1.kubectl get pod -A
connection refused ...
2.檢查docker 是否運行正常 docker ps -a
結果所有的container 都顯示 Exist (2xx) a hour ago...
由此推斷整個k8s環境未啟動
3.執行docker 重啟
systemctl daemon-reload
systemctl restart docker
依舊未啟動任何容器
4.執行kubectl 重啟
systemctl restart kubectl
可以看到所有pod 列表已正常出現,但是并未運行成功,依舊是斷電前的狀態,實際上服務都不可用
等待一段時間后,發現kube-system 環境已經正常, 但是無法分配pod 進行創建實例
5.通過檢查集群狀態 kubectl get nodes
發現只有master 處于ready 狀態,兩個data node都是NotRead,重啟兩個節點狀態未變
6.直接采取暴力解決方案
在data node 上執行 kubeadm reset 重置節點,重新將節點加入到集群
7.重新加入集群
在master 節點重新創建一個token ,之前的token 大概率失效了已經
kubeadm token create
執行指令后會輸入新創建的token
通過下面指令獲取 join 的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的值
執行join 指令
kubeadm join 192.168.80.127:6443 --token csgdh3.h5i2rde8gmjvx255
--discovery-token-ca-cert-hash sha256:e396f402d4888d12a9694f4e5810c6757c41e15f38961b1386666bc15743422e
8.兩個data node 都執行同樣操作后,再次檢查集群節點狀態發現已經全部ready
9.繼續kubectl get pod -A 發現雖然所有app pod 進入creating 狀態,但是鏡像一直拉取失敗,由此定位到鏡像倉庫問題,發現harbor 未就緒
10.通過 kubectl describe pod ${containerId} -n harbor,發現harbor 一直在pulling image
由于是拉取的官網鏡像,很慢,只能等,大概15分鐘后,harbor 就緒
11.harbor 就緒后,不著急就等待容易重啟拉取鏡像,app 相關pod 應該就會就緒。
由于集群會存在一些前置啟動后,其他pod才能正常啟動的問題,所以發現一些一直不成功,可以嘗試重啟docker 解決。或者直接刪除對應pod ,重新調度
*12.特殊問題:
由于dapr 類app 需要在每個pod中注入一個dapr sidecar,但是此時看到的所有的dapr 類app 并未是 2/2狀態,只是1/1的runing 狀態,推斷 dapr sidecar 并未啟動。
導致這種情況的可能性:由于是斷電重啟,所有pod 同時調度,因此dapr 系統環境未就緒前,dapr 類app 也進入調度中,導致 dapr injector 無法將side car 注入到每個dapr app 的container中。
等待 dapr 系統環境就緒后,刪除對應的dapr app pod 等待重新調度即可。

上一篇:k8s安裝

下一篇:zs運動康復證

精選推薦

  • 催化燃燒設備供應商
    催化燃燒設備供應商

    催化燃燒設備供應商,催化燃燒處理裝置廠家,本裝置是采用廢氣先進入噴淋塔過濾——干式過濾—-蜂窩活性碳吸附—脫附再生——催化燃

  • 該不該有模具供應商
    該不該有模具供應商

    今天紅姐又來跟我探討供應商的管理問題了。故事是這樣的:供應商來料不良,原因是模具問題。而那個模具是我們找的一家模具供應商做的

  • 什么牌子高壓鍋好,高壓鍋哪個牌子好,高壓鍋什么牌子好,高壓鍋哪個品牌好
    什么牌子高壓鍋好,高壓鍋哪個牌子好,高

    1蘇泊爾 雙重安全閥門 高壓鍋雙重安全閥,防燙把手,復合底。這款高壓鍋擁有雙重安全閥門,更好的保證使用安全。搭載防燙傷把手,方便起

  • 高壓鍋啥牌子好,高壓鍋哪個牌子的好,什么高壓鍋牌子好,高壓鍋推薦選購指南
    高壓鍋啥牌子好,高壓鍋哪個牌子的好,什

    1、雙喜階梯型復底高壓鍋推薦理由:高壓鍋滿足上蒸下煮,飯菜同時進行,方便快速,有效提升烹飪效率。多重安全防護,安全系數較高,家人使用

0