91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

如何在virtualBox搭建一個本地kubernets集群

發布時間:2022-03-04 10:22:25 來源:億速云 閱讀:133 作者:小新 欄目:開發技術

這篇文章給大家分享的是有關如何在virtualBox搭建一個本地kubernets集群的內容。小編覺得挺實用的,因此分享給大家做個參考,一起跟隨小編過來看看吧。

1. 虛擬機準備工作

1.1 下載centos7的鏡像

注意centos8不支持kubeadm,血淚教訓。也不要下mini會無法使用界面。http://mirrors.aliyun.com/centos/7/isos/x86_64/
安裝不要使用最小化安裝,不然接下來安裝增強功能不方便。

systemctl stop firewalld && systemctl disable firewalld

1.2 關閉sawp內存空間

在安裝K8S集群時,Linux的Swap內存交換機制是一定要關閉的,否則會因為內存交換而影響性能以及穩定性。這里,我們可以提前進行設置:

  • 執行swapoff -a可以臨時關閉,但系統重啟后會恢復

  • 編輯/etc/fstab,注釋掉包含swap那一行就可以永久關閉了,可以執行如下命令注釋掉該行:

sed -i '/ swap / s/^/#/' /etc/fstab

1.3 關閉 SeLinux

  • 執行setenforce 0可以臨時關閉

  • 永久關閉需要修改/etc/sysconfig/selinux的文件設置

sed -i '/SELINUX=e\|SELINUX=p\|SELINUX=d/c\SELINUX=disabled' /etc/sysconfig/selinux

1.4 配置橋接模式

橋接模式相當于假設了一個虛擬網卡,把虛擬機加入宿主機所在的網卡區域,所以界面名稱是宿主機的網卡名字。

如何在virtualBox搭建一個本地kubernets集群

可以在網絡和internet設置

如何在virtualBox搭建一個本地kubernets集群

然后查看現在正在使用的網卡

如何在virtualBox搭建一個本地kubernets集群

通過關閉網卡發現,實際上是ens8在做網橋,和外界通訊。

其中centos的網卡配置文件目錄:cd /etc/sysconfig/network-scripts/,我們需要改的是vi /etc/sysconfig/network-scripts/ifcfg-enp0s8,把下面的內容輸入。(經測試無關)

BOOTPROTO="static"
 
IPADDR=192.168.0.50
GATEWAY=192.168.0.1
DNS1=192.168.0.1
DNS2=8.8.8.8
NETMASK=255.255.255.0

宿主機可以ping虛擬機,但是虛擬機無法ping宿主機。

如何在virtualBox搭建一個本地kubernets集群

1.5 安裝增強功能

參考我上一篇博客: http://www.neiyidaogou.com/article/234291.htm

1.6 XSHELL連接SSH

為了防止需要x11,所以需要去vi /etc/sudoers增加一個修改Defaults env_keep="DISPLAY XAUTHORITY"

如何在virtualBox搭建一個本地kubernets集群

如何在virtualBox搭建一個本地kubernets集群

如何在virtualBox搭建一個本地kubernets集群

如何在virtualBox搭建一個本地kubernets集群

2. 安裝docker

2.1 卸載舊的docker版本

首先是參考官網的步驟https://docs.docker.com/engine/install/centos/#prerequisites
先卸載舊版本:

sudo yum remove docker \
                  docker-client \
                  docker-client-latest \
                  docker-common \
                  docker-latest \
                  docker-latest-logrotate \
                  docker-logrotate \
                  docker-engine

2.2 配置阿里的鏡像倉庫

sudo yum install -y yum-utils
yum-config-manager \
    --add-repo \
    http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

2.3 安裝最新版本的 Docker Engine 和 containerd

這一步可能會遇到問題和podman沖突,podman是redhat用來取代docker的打包工具,因此直接移除就好:

如何在virtualBox搭建一個本地kubernets集群

yum erase podman buildah
sudo yum install docker-ce docker-ce-cli containerd.io

2.4 啟動docker并且用helloWord測試,如果成功可以在結果看到提示你正確安裝:

sudo systemctl start docker
sudo docker run hello-world

設計開啟啟動,并且測試完移除容器

如何在virtualBox搭建一個本地kubernets集群

systemctl enable docker

2.5 避免和kubelet的沖突

docker info|grep cgroup檢視,如果docker使用的Cgroup Driver為cgroupfs。則有可能跟kubelet沖突,需要改為一致的systemd
,先vi /etc/docker/daemon.json,在檔案中新增如下程式碼,重啟docker即可systemctl restart docker

{
	"exec-opts": ["native.cgroupdriver=systemd"]
}

3. 安裝kubernetes

我們利用kubernetes官方提供的kubeadm工具來安裝kubernetes集群,官方文檔可以參考:https://kubernetes.io/docs/setup/production-environment/tools/kubeadm/create-cluster-kubeadm/

3.2 配置kubernetes的yum源

這里使用阿里云的鏡像倉庫,之前使用過騰訊的鏡像倉庫,報過404的錯誤,其實應該是鏡像倉庫源錯誤。

Errors during downloading metadata for repository 'kubernetes':
  - Status code: 404 for https://mirrors.cloud.tencent.com/kubernetes/yum/repos/kubernetes-el7-x86_64/repodata/repomd.xml.asc (IP: 120.196.204.237)
  - Status code: 404 for https://mirrors.cloud.tencent.com/kubernetes/yum/doc/yum-key.gpg (IP: 120.196.204.75)
錯誤:為倉庫 'kubernetes' 獲取 GPG 密鑰失敗 : Status code: 404 for https://mirrors.cloud.tencent.com/kubernetes/yum/doc/yum-key.gpg (IP: 120.196.204.75)

還有就是阿里云的倉庫參考的博主的也是失敗的,最新的找到了這個:

# 配置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

安裝組件(需要指定版本,我試過最新的版本或者1.18.4鏡像倉庫都下載失敗):

yum install kubectl-1.20.0 kubeadm-1.20.0 kubelet-1.20.0 -y

3.3 啟動 kubelet

systemctl enable kubelet && systemctl start kubelet

3.4 設置主機名

然后復制若干份,給每個主機設置名字:

hostnamectl set-hostname k8s-master2

3.5 規劃集群網絡

注意這里hosts的名字要和上面的主機名一致,不然待會兒建設集群會報錯Could not resolve host: mirrors.aliyun.com; 未知的錯誤

vi /etc/hosts

192.168.0.104 k8s-master1
192.168.0.105 k8s-master2
192.168.0.106 k8s-node1
192.168.0.107 k8s-node2

然后給每個節點設置靜態IP,不然每次重啟都不一樣,再重啟網絡組件,注意我這里的內核版本是centos8.0,所以網絡組件不是network,改動的加進去的靜態IP部分都是根據我本機電腦的IP得來的。DNS要設置,不然可能會出現之后使用鏡像下載失敗的問題

vi /etc/sysconfig/network-scripts/ifcfg-enp0s3

DNS1=8.8.8.8
DNS2=8.8.4.4
IPV6_PRIVACY=no
OXY_METHOD="none"
BROWSER_ONLY="no"
############改動部分開始############
#動態IP
#BOOTPROTO="dhcp"

#靜態IP
BOOTPROTO="static"
IPADDR=192.168.0.104
NETMASK=255.255.255.0
GATEWAY=192.168.0.1
DNS1=192.168.0.1
############改動部分結束############
DEFROUTE="yes"
IPV4_FAILURE_FATAL="no"
IPV6INIT="yes"
IPV6_AUTOCONF="yes"
IPV6_DEFROUTE="yes"
IPV6_FAILURE_FATAL="no"
IPV6_ADDR_GEN_MODE="stable-privacy"
NAME="enp0s3"
UUID="73ab5a69-9070-4c5a-a0b9-c5a6250af943"
DEVICE="enp0s3"
ONBOOT="yes"


nmcli c reload
nmcli c up enp0s3

此時集群的主機可以互相ping通,但是虛擬機ping主機無法ping通。

1.依次打開【控制面板】-【Windows Definder防火墻】-【高級設置】-【入站規則】-【按配置文件篩選】-【按公有配置文件篩選】

2.拉到最下面,找到并啟用文件類型為“公用”的“文件和打印共享(回顯請求 &ndash; ICMPv4-In)”規則,此時就可以ping通了。

如何在virtualBox搭建一個本地kubernets集群

3.6 初始化一臺機器的master節點

驗收標準: kubectl get node -n kube-system可以看到輸出的結果
安裝方式: kubeadm init \ --apiserver-advertise-address=192.168.0.104\ --image-repository registry.aliyuncs.com/google_containers \ --kubernetes-version v1.20.0 \ --service-cidr=10.1.0.0/16 \ --pod-network-cidr=10.244.0.0/16
可以在后面跟上:--ignoer-preflight-errors=all

如何在virtualBox搭建一個本地kubernets集群

安裝之前的驗證:

  • kubeadm init --dry-run,可以不需要實際部署但是走一遍init的流程,可以看看有沒有錯誤并且看到官方推薦的版本,也可以看到安裝之后下一步要做什么,看到會給我們創建CA證書和通過yaml創建etcd等資源,/etc/kubernetes下面可以看到正常的資源。

  • 通過kubeadm config images list --kubernetes-version 1.18.4 --image-repository=registry.cn-hangzhou.aliyuncs.com/google_containers驗證資源能不能正常拉下來,注意備注kubernets版本是為了避免從墻外拉。國內鏡像地址參考

  1. 選項&ndash;pod-network-cidr=10.244.0.0/16,指定了pod的子網劃分地址。因為后面要使用flannel網絡插件,所以這里要指定flannel規定的cidr地址。

  2. 選項&ndash;image-repository=“registry.cn-hangzhou.aliyuncs.com/google_containers”,指定了容器鏡像的倉庫地址。

  3. 選項&ndash;apiserver-advertise-address=192.168.0.12,表示api-server綁定的網卡地址,這里就是當前k8s-master這個節點的IP地址.

或者將配置文件保存下來kubeadm config print init-defaults > kubeadm.conf,方便修改和查看。然后主要也是改images-repository,驗證的話kubeadm config images pull --config kubeadm.conf

安裝錯版本了需要撤銷init才能重新部署,此時通過kubeadm reset完成,重置過程不會重置或清除 iptables 規則或 IPVS 表,可以看重置后的提示,不過我們剛剛初始化直接reset就行。

如何在virtualBox搭建一個本地kubernets集群

配置kubeconfig:

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

3.7 讓子節點加入

3.71 加入子節點

只需要在子節點跑下面的命令就行啦,這個是上面init提示的:

kubeadm join k8smaster.com:6443 --token pdas2m.fkgn8q7mz5u96jm6 --discovery-token-ca-cert-hash sha256:6fd9b1bf2d593d2d4f550cd9f1f596865f117fef462db42860228311c2712b8b

如果沒有記錄可以通過kubeadm token list查看,如果沒有輸出說明上個token已經過期了,直接生成新的kubeadm token create --print-join-command,默認有效期24小時,若想久一些可以結合&ndash;ttl參數,設為0則用不過期

kubeadm join k8smaster.com:6443 --token pdas2m.fkgn8q7mz5u96jm6 --discovery-token-ca-cert-hash sha256:6fd9b1bf2d593d2d4f550cd9f1f596865f117fef462db42860228311c2712b8b

如果有輸出,比如下面,此時發現只有token沒有CA:

如何在virtualBox搭建一個本地kubernets集群

還需要解密獲得證書:openssl x509 -pubkey -in /etc/kubernetes/pki/ca.crt | openssl rsa -pubin -outform der 2>/dev/null | openssl dgst -sha256 -hex | sed 's/^.* //'
那么結果是6fd9b1bf2d593d2d4f550cd9f1f596865f117fef462db42860228311c2712b8b,也就是-discovery-token-ca-cert-hash sha256:的值。

如果報錯:

error execution phase preflight: couldn&rsquo;t validate the identity of the
API Server: could not find a JWS signature in the cluster-info
ConfigMap for token ID “ecqb8f”

是因為令牌過期了,重新生成一個即可

3.72 子節點正確使用kubelet

無法正常使用kubelet get nodes,報錯如下:

The connection to the server localhost:8080 was refused - did you
specify the right host or port?

先使用root用戶, 發現還是不行。

mkdir $HOME/.kube/
cp -i /etc/kubernets/kubelet.conf $HOME/.kube/config
chown 1000:1000 $HOME/.kube/config

3.8 配置flannel

# 下載flannel.yaml
https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.yml
kubectl apply -f kube-flannel.yml

鏡像:quay.io/coreos/flannel:v0.11.0-amd64可能拉取很慢,可以提前下載已導出的鏡像包在節點上執行docker load完成鏡像導入(.docker)或者docker import(.tar)
flannel起來后,cosedns也會起來

感謝各位的閱讀!關于“如何在virtualBox搭建一個本地kubernets集群”這篇文章就分享到這里了,希望以上內容可以對大家有一定的幫助,讓大家可以學到更多知識,如果覺得文章不錯,可以把它分享出去讓更多的人看到吧!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

定陶县| 昌黎县| 永福县| 澎湖县| 凤台县| 曲周县| 茂名市| 金堂县| 乌审旗| 南木林县| 江达县| 万源市| 蕲春县| 大同县| 峨边| 宝应县| 昭觉县| 吐鲁番市| 虞城县| 西吉县| 内乡县| 喜德县| 育儿| 专栏| 阿巴嘎旗| 化州市| 清新县| 陇西县| 闸北区| 江都市| 汽车| 古丈县| 牙克石市| 循化| 永平县| 当阳市| 汪清县| 安顺市| 多伦县| 襄城县| 凉山|