日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

手把手教你在centos7安装k8s集群

發布時間:2023/12/20 编程问答 33 豆豆
生活随笔 收集整理的這篇文章主要介紹了 手把手教你在centos7安装k8s集群 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

最近在整理回顧k8s相關的知識,實操手動去搭建一個簡易的k8s集群環境(作者本人搭建的是k8s集群version v1.23.3),花了挺多時間,踩了不少坑。不過最終還是把環境跑起來了,大家按照我的方式去搭,絕對不會錯。

操作步驟

  • 準備工作
  • 安裝kubeadm
  • 下載k8s組件鏡像
    • 下載組件鏡像
    • 配置k8s的master節點
    • 安裝worker節點
    • 安裝console節點
  • 結束

準備工作

  • 準備三臺機器(我這里都是虛擬機,最小化安裝,root身份登錄)
    • 中控機(1核1G內存)
    • worker節點(1核1G內存)
    • master節點(2核2G內存)
  • 三臺機器關閉防火墻和Selinux
  • 關閉防火墻 systemctl stop firewalld systemctl disable firewalld 關閉selinux sed -i s/SELINUX=enforcing/SELINUX=disabled/ /etc/selinux/config setenforce 0 getenforce
  • 三臺機器改名
    改名的主要目的是,k8s使用主機名來區分集群里的其他節點,所以hostname不能重名。
  • 在三臺機器上分別執行 hostnamectl set-hostname worker hostnamectl set-hostname master hostnamectl set-hostname console 然后exit,重新登錄機器就能看到效果了

    從第四步開始,如無特殊說明,以下操作都是針對worker和master節點
    4. 安裝配置Docker
    安裝節點為worker和master

    yum install -y yum-utils yum-config-manager \--add-repo \https://download.docker.com/linux/centos/docker-ce.repo yum install docker-ce docker-ce-cli containerd.io docker-compose-plugin 啟動docker systemctl start docker systemctl enable docker 測試docker是否正常運行 docker run hello-world

    完成上面步驟后,還需要對docker的配置做一些修改,對/etc/docker/daemon.json文件中的cgroupdriver改成systemd。最后保存重啟即可(沒有這個文件,就在對應路徑里創建即可)。

    cat <<EOF | /etc/docker/daemon.json {"exec-opts": ["native.cgroupdriver=systemd"],"log-driver": "json-file","log-opts": {"max-size": "100m"},"storage-driver": "overlay2" } EOF然后執行 systemctl daemon-reload systemctl restart docker
  • 為了讓k8s能夠檢查和轉發網絡流量,需要修改iptables配置,啟用br_netfilter
  • cat <<EOF | /etc/modules-load.d/k8s.conf br_netfilter EOFcat <<EOF | /etc/sysctl.d/k8s.conf net.bridge.bridge-nf-call-ip6tables = 1 net.bridge.bridge-nf-call-iptables = 1 net.ipv4.ip_forward=1 # better than modify /etc/sysctl.conf EOFsudo sysctl --system
  • 關閉swap分區,不然會導致kubelet起不來
  • sudo swapoff -a sudo sed -ri '/\sswap\s/s/^#?/#/' /etc/fstab

    安裝kubeadm

    # 添加yum源 cat <<EOF | sudo tee /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=0 gpgkey=https://mirrors.aliyun.com/kubernetes/yum/doc/yum-key.gpg https://mirrors.aliyun.com/kubernetes/yum/doc/rpm-package-key.gpg EOF # 安裝kubeadm、kubectl、kubelet yum install -y kubeadm-1.23.3-0 kubectl-1.23.3-0 kubelet-1.23.3-0 --disableexcludes=kubernetes

    完成安裝后,我們可以檢查下是不是對應的版本

    kubeadm version kubectl version short

    然后為了保證k8s環境穩定,我們最好鎖定這三個應用的版本,這里會用到yum-plugin-versionlock

    # 安裝 yum install -y yum-plugin-versionlock # 鎖定軟件包 yum versionlock add kubeadm kubectl kubelet # 查看鎖定列表 yum versionlock list

    下載k8s組件鏡像

    這里能看到我們需要安裝的k8s集群組件都有哪些鏡像

    kubeadm config images list --kubernetes-version v1.23.3

    下載組件鏡像

    在worker和master上執行下面的shell腳本即可

    repo=registry.aliyuncs.com/google_containersfor name in `kubeadm config images list --kubernetes-version v1.23.3`; dosrc_name=${name#k8s.gcr.io/}src_name=${src_name#coredns/}docker pull $repo/$src_namedocker tag $repo/$src_name $namedocker rmi $repo/$src_name done

    配置k8s的master節點

    kubeadm init \ --apiserver-advertise-address=192.168.127.147 \ --kubernetes-version v1.23.3 \ --pod-network-cidr=10.10.0.0/16

    –pod-network-cidr,設置集群里 Pod 的 IP 地址段
    –apiserver-advertise-address,設置 apiserver 的 IP 地址,指向master虛擬機的IP地址
    –kubernetes-version,設置k8s的版本號

    上述步驟完成后,我們還需要按照提示操作以下步驟

    To start using your cluster, you need to run the following as a regular user:mkdir -p $HOME/.kubesudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/configsudo chown $(id -u):$(id -g) $HOME/.kube/config

    因為是root用戶,簡化一下就是

    mkdir -p $HOME/.kube cp -i /etc/kubernetes/admin.conf $HOME/.kube/config

    還有一行配置是kubeadm join的提示,這條信息是工作節點加入集群需要用到的,里面的token具有時效性(24h),過期就要重新生成了。

    kubeadm join 192.168.127.147:6443 --token nb8ydn.uyu1elj2146qhjg5 --discovery-token-ca-cert-hash sha256:1257ab57475d4d643ac81864827e8465e41d77e9abf38cd91e06292bd38a46c8

    如果過期了,這里有重新生成token的指令

    kubeadm token create --print-join-command

    最后一步就是安裝Flannel網絡插件,保證集群內部的網絡正常運作。
    我們可以在Flannel的 GitHub 倉庫里(https://github.com/flannel-io/flannel/)找到kube-flannel.yml文檔,修改net-conf.json為上面指定的集群內部IP網段即可,修改好后的文檔我就貼在文章中了。
    kube-flannel.yml

    --- kind: Namespace apiVersion: v1 metadata:name: kube-flannellabels:pod-security.kubernetes.io/enforce: privileged --- kind: ClusterRole apiVersion: rbac.authorization.k8s.io/v1 metadata:name: flannel rules: - apiGroups:- ""resources:- podsverbs:- get - apiGroups:- ""resources:- nodesverbs:- list- watch - apiGroups:- ""resources:- nodes/statusverbs:- patch --- kind: ClusterRoleBinding apiVersion: rbac.authorization.k8s.io/v1 metadata:name: flannel roleRef:apiGroup: rbac.authorization.k8s.iokind: ClusterRolename: flannel subjects: - kind: ServiceAccountname: flannelnamespace: kube-flannel --- apiVersion: v1 kind: ServiceAccount metadata:name: flannelnamespace: kube-flannel --- kind: ConfigMap apiVersion: v1 metadata:name: kube-flannel-cfgnamespace: kube-flannellabels:tier: nodeapp: flannel data:cni-conf.json: |{"name": "cbr0","cniVersion": "0.3.1","plugins": [{"type": "flannel","delegate": {"hairpinMode": true,"isDefaultGateway": true}},{"type": "portmap","capabilities": {"portMappings": true}}]}net-conf.json: |{"Network": "10.10.0.0/16","Backend": {"Type": "vxlan"}} --- apiVersion: apps/v1 kind: DaemonSet metadata:name: kube-flannel-dsnamespace: kube-flannellabels:tier: nodeapp: flannel spec:selector:matchLabels:app: flanneltemplate:metadata:labels:tier: nodeapp: flannelspec:affinity:nodeAffinity:requiredDuringSchedulingIgnoredDuringExecution:nodeSelectorTerms:- matchExpressions:- key: kubernetes.io/osoperator: Invalues:- linuxhostNetwork: truepriorityClassName: system-node-criticaltolerations:- operator: Existseffect: NoScheduleserviceAccountName: flannelinitContainers:- name: install-cni-plugin#image: flannelcni/flannel-cni-plugin:v1.1.0 for ppc64le and mips64le (dockerhub limitations may apply)image: docker.io/rancher/mirrored-flannelcni-flannel-cni-plugin:v1.1.0command:- cpargs:- -f- /flannel- /opt/cni/bin/flannelvolumeMounts:- name: cni-pluginmountPath: /opt/cni/bin- name: install-cni#image: flannelcni/flannel:v0.20.1 for ppc64le and mips64le (dockerhub limitations may apply)image: docker.io/rancher/mirrored-flannelcni-flannel:v0.20.1command:- cpargs:- -f- /etc/kube-flannel/cni-conf.json- /etc/cni/net.d/10-flannel.conflistvolumeMounts:- name: cnimountPath: /etc/cni/net.d- name: flannel-cfgmountPath: /etc/kube-flannel/containers:- name: kube-flannel#image: flannelcni/flannel:v0.20.1 for ppc64le and mips64le (dockerhub limitations may apply)image: docker.io/rancher/mirrored-flannelcni-flannel:v0.20.1command:- /opt/bin/flanneldargs:- --ip-masq- --kube-subnet-mgrresources:requests:cpu: "100m"memory: "50Mi"limits:cpu: "100m"memory: "50Mi"securityContext:privileged: falsecapabilities:add: ["NET_ADMIN", "NET_RAW"]env:- name: POD_NAMEvalueFrom:fieldRef:fieldPath: metadata.name- name: POD_NAMESPACEvalueFrom:fieldRef:fieldPath: metadata.namespace- name: EVENT_QUEUE_DEPTHvalue: "5000"volumeMounts:- name: runmountPath: /run/flannel- name: flannel-cfgmountPath: /etc/kube-flannel/- name: xtables-lockmountPath: /run/xtables.lockvolumes:- name: runhostPath:path: /run/flannel- name: cni-pluginhostPath:path: /opt/cni/bin- name: cnihostPath:path: /etc/cni/net.d- name: flannel-cfgconfigMap:name: kube-flannel-cfg- name: xtables-lockhostPath:path: /run/xtables.locktype: FileOrCreate

    然后咱們在集群中安裝下就可以了

    # 安裝Flannel網絡插件 kubectl apply -f kube-flannel.yml # 通過 kubectl get node -w,實時查看master節點過會兒從NotReady變成Ready狀態 [root@master k8s-install]# kubectl get node -w NAME STATUS ROLES AGE VERSION master Ready control-plane,master 109m v1.23.3

    安裝worker節點

    worker節點為了節省資源,我們需要的組件只有proxy、coredns、pause,其他的可以直接刪了。

    # 查看下載的鏡像 docker images # 刪除鏡像命令 docker rmi

    然后執行上面那條kubeadm join的指令就可以了

    kubeadm join 192.168.127.147:6443 --token nb8ydn.uyu1elj2146qhjg5 --discovery-token-ca-cert-hash sha256:1257ab57475d4d643ac81864827e8465e41d77e9abf38cd91e06292bd38a46c8

    在master節點上,我們可以通過kubectl get node來查看現在集群中有幾個節點

    [root@master k8s-install]# kubectl get node NAME STATUS ROLES AGE VERSION master Ready control-plane,master 109m v1.23.3 worker Ready <none> 70m v1.23.3

    安裝console節點

    Console 節點的部署工作更加簡單,它只需要安裝一個 kubectl,然后復制“config”文件就行,直接在 Master 節點上用“scp”遠程拷貝。

    scp `which kubectl` root@192.168.127.149:~/ # worker節點的.kube目錄要先創建一下,mkdir -p $HOME/.kube scp ~/.kube/config root@192.168.127.149:~/.kube

    然后在worker節點上,把kubectl放在/usr/bin目錄下即可

    拷貝到PATH路徑之下 cp kubectl /usr/bin/ # 查看集群狀態 [root@console ~]# kubectl get node NAME STATUS ROLES AGE VERSION master Ready control-plane,master 117m v1.23.3 worker Ready <none> 78m v1.23.3

    結束

    到這一步,恭喜~我們的k8s集群就搭建完了!
    喜歡的話,就點個收藏吧~~

    參考:
    https://blog.csdn.net/weixin_43918125/article/details/125951616
    https://www.csdn.net/tags/NtTaYg3sMDU0MjQtYmxvZwO0O0OO0O0O.html
    https://blog.csdn.net/omaidb/article/details/121549382
    https://blog.51cto.com/u_15127640/4108989
    https://www.cnblogs.com/PurpleRain98/p/14837802.html

    總結

    以上是生活随笔為你收集整理的手把手教你在centos7安装k8s集群的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

    主站蜘蛛池模板: 毛片aaaaaa| 无码国产精品高潮久久99 | 日本xx片 | 天天色天天射天天操 | 国产精品毛片在线 | 一区二区欧美视频 | 视频在线观看电影完整版高清免费 | 成年人视频在线播放 | 国产盗摄一区二区三区在线 | 实拍女处破www免费看 | 西欧free性满足hd老熟妇 | 蜜臀一区二区三区精品免费视频 | av免费国产| 国产欧美综合一区二区三区 | 性感美女一区 | 色欲av无码精品一区 | 日韩专区av| 久久伊人av | 熟妇人妻无乱码中文字幕真矢织江 | 天天舔天天爽 | 日本免费网站在线观看 | 欧美变态另类刺激 | 日韩精品久久 | 国产精品日韩一区 | 精品在线观看一区 | 精品免费久久久 | 美女脱得一干二净 | 天天看视频 | 精品国产专区 | 麻豆精品av | 国产叼嘿视频在线观看 | 日韩一区二区a片免费观看 伊人网综合在线 | caoporn超碰97 | 国产精品成人网 | 熊猫av| 日b在线观看 | 献给魔王伊伏洛基亚吧动漫在线观看 | 无码少妇一区二区三区 | 男同毛片 | 韩国三级在线视频 | 日韩一及片 | 婷婷综合社区 | 国产一区二区三区播放 | 日韩一级片网址 | 久久久久亚洲精品国产 | 欧美性猛交xxxx乱大交hd | 九一精品一区 | 亚洲天堂va | 中文字幕日产乱码中 | 日本a一级| 专业操老外 | 四虎永久在线精品免费一区二区 | 黄色网页在线观看 | 亚洲欧美激情一区二区三区 | 一区二区在线播放视频 | 成人精品免费网站 | www国产黄色 | 男男做爰猛烈啪啪高 | 国产精品探花在线观看 | 黄色一级片在线播放 | 在线播放亚洲精品 | 久久久久久穴 | 亚洲国产免费 | 天堂а√在线中文在线鲁大师 | 无码少妇一级AV片在线观看 | 337p日本大胆噜噜噜噜 | 视频在线观看一区 | 日本一区二区视频在线 | av不卡网| 亚洲成人午夜影院 | 精品福利视频一区二区 | 麻豆成人在线观看 | 销魂美女一区二区 | 精品伦精品一区二区三区视频 | 亚洲无码精品在线观看 | 亚洲精品自拍 | jizz成熟丰满日本少妇 | 国产吃瓜黑料一区二区 | 天天干妹子 | 欧美日韩激情网 | 国产黄色大片网站 | 日狠狠 | 国产精品久久在线观看 | 国产乱码精品一区二区三区忘忧草 | 大吊av| 亚洲欧美另类日韩 | h片在线观看视频 | 日韩午夜一区 | 黄色网址www | 亚洲精品一区二三区不卡 | av网站一区| 久久九九热 | 91视频.com| 欧美影音 | 欧美精品xx | 麻豆视频91 | 啪啪网站免费观看 | 九九热国产视频 | 人人草人人爱 |