国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

K8S云計算系列-(3)

這篇具有很好參考價值的文章主要介紹了K8S云計算系列-(3)。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

K8S Kubeadm案例實戰(zhàn)

Kubeadm 是一個K8S部署工具,它提供了kubeadm init 以及 kubeadm join 這兩個命令來快速創(chuàng)建kubernetes集群。

Kubeadm 通過執(zhí)行必要的操作來啟動和運行一個最小可用的集群。它故意被設計為只關心啟動集群,而不是之前的節(jié)點準備工作。同樣的諸如安裝各種各樣值得擁有的插件,例如Kubernetes Dashboard、監(jiān)控解決方案以及特定云提供商的插件,這些都不在它負責的范圍。

相反我們期望由一個基于 kubeadm 從更高層設計的更加合適的工具來做這些事情;并且,理想情況下,使用 kubeadm 作為所有部署的基礎將會使得創(chuàng)建一個符合期望的集群變得容易。

Kubeadm:用于初始化K8S Cluster的工具,會用到Kubelet組件服務,運行在Cluster所有節(jié)點上,負責調用Docker指令,啟動POD和容器。kubectl:kubectl是kubenetes命令行工具,通過Kubectl可以部署和管理應用,查看各種資源,創(chuàng)建,刪除和更新組件。

在機器上手動安裝 docker、kubeadm、kubelet、kubectl 幾個二進制文件,然后才能再容器化部署其他 Kubernetes 組件。主要通過kubeadm init初始化,初始化K8S集群的流程如下:

  • 檢查工作(Preflight Checks):檢查Linux內核版本、Cgroups模塊可用性、組件版本、端口占用情況、Docker等依賴情況;
  • 生成對外提供服務的CA證書及對應的目錄;
  • 生成其他組件訪問 kube-apiserver 所需的配置文件;
  • 為Master組件生成應用容器的配置文件,利用這些配置文件,通過Kubernetes 中特殊的容器啟動方法:“Static Pod”(Kubeadm init-Kubelet啟動時自動加載固定目錄的 Pod YAML 文件并啟動)-Docker引擎-啟動kube-apiserver、kube-controller-manager、kube-scheduler 三個 Master 組件。同時還會生成 Etcd 的 Pod YAML 文件;
  • 為集群生成一個Bootstrap token,其他節(jié)點加入集群的機器和 Apiserver打交道,需要獲取相應的證書文件,所以Bootstrap token需要扮演安全驗證的角色;
  • 安裝默認插件,例如:Kube-proxy 和Core DNS,分別提供集群的服務發(fā)現(xiàn)和 DNS 功能。
    K8S云計算系列-(3),kubernetes,云計算,容器
    1)安裝Kubeadm工具

#安裝Kubeadm;
yum install -y kubeadm-1.20.4 kubelet-1.20.4 kubectl-1.20.4
#啟動kubelet服務
systemctl enable kubelet.service
systemctl start kubelet.service

2)Kubeadm常見指令操作;


kubeadm init 啟動一個 Kubernetes 主節(jié)點
kubeadm join 啟動一個 Kubernetes 工作節(jié)點并且將其加入到集群
kubeadm upgrade 更新一個 Kubernetes 集群到新版本
kubeadm config 如果使用 v1.7.x 或者更低版本的 kubeadm 初始化集群,您需要對集群做一些配置以便使用 kubeadm upgrade 命令
kubeadm token 管理 kubeadm join 使用的令牌
kubeadm reset 還原 kubeadm init 或者 kubeadm join 對主機所做的任何更改
kubeadm version 打印 kubeadm 版本
kubeadm alpha 預覽一組可用的新功能以便從社區(qū)搜集反饋

K8S Master節(jié)點實戰(zhàn)

1)執(zhí)行kubeadm init初始化安裝Master相關軟件;

kubeadm init --control-plane-endpoint=192.168.1.146:6443 --image-repository registry.aliyuncs.com/google_containers   --kubernetes-version v1.20.4 --service-cidr=10.10.0.0/16   --pod-network-cidr=10.244.0.0/16   --upload-certs

2)根據(jù)如上指令操作,執(zhí)行成功,如圖所示:
K8S云計算系列-(3),kubernetes,云計算,容器

K8S云計算系列-(3),kubernetes,云計算,容器
3)根據(jù)如上圖提示,接下來需手工執(zhí)行如下指令,拷貝admin配置文件;

mkdir -p $HOME/.kube
sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
sudo chown $(id -u):$(id -g) $HOME/.kube/config

4)將node節(jié)點加入K8S集群,在Node節(jié)點使用的參數(shù)和指令如下;


kubeadm join 192.168.1.146:6443 --token ze0zfe.9zhew67l6gxsq7du \
    --discovery-token-ca-cert-hash sha256:ee5a3f9accf98c76a3a3da1f3c4540c14c9e9ce49a4070de4b832aa8cb3a8f31

Node1節(jié)點加入集群

#啟動Node1節(jié)點上docker引擎服務;
systemctl start docker.service
#將Node1節(jié)點加入K8S集群;
kubeadm join 192.168.1.146:6443 --token ze0zfe.9zhew67l6gxsq7du \
--discovery-token-ca-cert-hash sha256:ee5a3f9accf98c76a3a3da1f3c4540c14c9e9ce49a4070de4b832aa8cb3a8f31
#執(zhí)行kubeadm init時沒有記錄下加入集群的指令,可以通過以下命令重新創(chuàng)建即可;
kubeadm token create --print-join-command
#登錄K8S Master節(jié)點驗證節(jié)點信息;
kubectl get nodes

K8S云計算系列-(3),kubernetes,云計算,容器

K8S節(jié)點網(wǎng)絡配置

Kubernetes整個集群所有服務器(Master、Minions)配置Flanneld,操作方法和指令如下:
參考:https://github.com/containernetworking/cni
必須安裝pod網(wǎng)絡插件,以便pod之間可以相互通信,必須在任何應用程序之前部署網(wǎng)絡,CoreDNS不會在安裝網(wǎng)絡插件之前啟動。
1)安裝Flanneld網(wǎng)絡插件;
Fanneld定義POD的網(wǎng)段為: 10.244.0.0/16,POD容器的IP地址會自動分配10.244開頭的網(wǎng)段IP。安裝Flanneld網(wǎng)絡插件指令如下:

#下載Fanneld插件YML文件;
yum install wget -y
wget https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.yml
#提前下載Flanneld組建所需鏡像;
for i in $(cat kube-flannel.yml |grep image|awk -F: '{print $2":"$3}'|uniq );do docker pull $i ;done
#應用YML文件;
kubectl apply -f kube-flannel.yml
#查看Flanneld網(wǎng)絡組建是否部署成功;
kubectl -n kube-system get pods|grep -aiE flannel

Kube-flannel.yaml配置文件代碼如:

---
apiVersion: policy/v1beta1
kind: PodSecurityPolicy
metadata:
  name: psp.flannel.unprivileged
  annotations:
    seccomp.security.alpha.kubernetes.io/allowedProfileNames: docker/default
    seccomp.security.alpha.kubernetes.io/defaultProfileName: docker/default
    apparmor.security.beta.kubernetes.io/allowedProfileNames: runtime/default
    apparmor.security.beta.kubernetes.io/defaultProfileName: runtime/default
spec:
  privileged: false
  volumes:
  - configMap
  - secret
  - emptyDir
  - hostPath
  allowedHostPaths:
  - pathPrefix: "/etc/cni/net.d"
  - pathPrefix: "/etc/kube-flannel"
  - pathPrefix: "/run/flannel"
  readOnlyRootFilesystem: false
  # Users and groups
  runAsUser:
    rule: RunAsAny
  supplementalGroups:
    rule: RunAsAny
  fsGroup:
    rule: RunAsAny
  # Privilege Escalation
  allowPrivilegeEscalation: false
  defaultAllowPrivilegeEscalation: false
  # Capabilities
  allowedCapabilities: ['NET_ADMIN', 'NET_RAW']
  defaultAddCapabilities: []
  requiredDropCapabilities: []
  # Host namespaces
  hostPID: false
  hostIPC: false
  hostNetwork: true
  hostPorts:
  - min: 0
    max: 65535
  # SELinux
  seLinux:
    # SELinux is unused in CaaSP
    rule: 'RunAsAny'
---
kind: ClusterRole
apiVersion: rbac.authorization.k8s.io/v1
metadata:
  name: flannel
rules:
- apiGroups: ['extensions']
  resources: ['podsecuritypolicies']
  verbs: ['use']
  resourceNames: ['psp.flannel.unprivileged']
- apiGroups:
  - ""
  resources:
  - pods
  verbs:
  - get
- apiGroups:
  - ""
  resources:
  - nodes
  verbs:
  - list
  - watch
- apiGroups:
  - ""
  resources:
  - nodes/status
  verbs:
  - patch
---
kind: ClusterRoleBinding
apiVersion: rbac.authorization.k8s.io/v1
metadata:
  name: flannel
roleRef:
  apiGroup: rbac.authorization.k8s.io
  kind: ClusterRole
  name: flannel
subjects:
- kind: ServiceAccount
  name: flannel
  namespace: kube-system
---
apiVersion: v1
kind: ServiceAccount
metadata:
  name: flannel
  namespace: kube-system
---
kind: ConfigMap
apiVersion: v1
metadata:
  name: kube-flannel-cfg
  namespace: kube-system
  labels:
    tier: node
    app: 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.244.0.0/16",
      "Backend": {
        "Type": "vxlan"
      }
    }
---
apiVersion: apps/v1
kind: DaemonSet
metadata:
  name: kube-flannel-ds
  namespace: kube-system
  labels:
    tier: node
    app: flannel
spec:
  selector:
    matchLabels:
      app: flannel
  template:
    metadata:
      labels:
        tier: node
        app: flannel
    spec:
      affinity:
        nodeAffinity:
          requiredDuringSchedulingIgnoredDuringExecution:
            nodeSelectorTerms:
            - matchExpressions:
              - key: kubernetes.io/os
                operator: In
                values:
                - linux
      hostNetwork: true
      priorityClassName: system-node-critical
      tolerations:
      - operator: Exists
        effect: NoSchedule
      serviceAccountName: flannel
      initContainers:
      - name: install-cni
        image: quay.io/coreos/flannel:v0.13.1-rc2
        command:
        - cp
        args:
        - -f
        - /etc/kube-flannel/cni-conf.json
        - /etc/cni/net.d/10-flannel.conflist
        volumeMounts:
        - name: cni
          mountPath: /etc/cni/net.d
        - name: flannel-cfg
          mountPath: /etc/kube-flannel/
      containers:
      - name: kube-flannel
        image: quay.io/coreos/flannel:v0.13.1-rc2
        command:
        - /opt/bin/flanneld
        args:
        - --ip-masq
        - --kube-subnet-mgr
        resources:
          requests:
            cpu: "100m"
            memory: "50Mi"
          limits:
            cpu: "100m"
            memory: "50Mi"
        securityContext:
          privileged: false
          capabilities:
            add: ["NET_ADMIN", "NET_RAW"]
        env:
        - name: POD_NAME
          valueFrom:
            fieldRef:
              fieldPath: metadata.name
        - name: POD_NAMESPACE
          valueFrom:
            fieldRef:
              fieldPath: metadata.namespace
        volumeMounts:
        - name: run
          mountPath: /run/flannel
        - name: flannel-cfg
          mountPath: /etc/kube-flannel/
      volumes:
      - name: run
        hostPath:
          path: /run/flannel
      - name: cni
        hostPath:
          path: /etc/cni/net.d
      - name: flannel-cfg
        configMap:
          name: kube-flannel-cfg

K8S云計算系列-(3),kubernetes,云計算,容器
2)安裝Calico網(wǎng)絡插件;
官方文檔參考:
https://kubernetes.io/docs/setup/production-environment/tools/kubeadm/create-cluster-kubeadm/#pod-network
https://docs.projectcalico.org/v3.10/getting-started/kubernetes/
為使calico正常工作,你需要傳遞–pod-network-cidr=10.10.0.0/16到kubeadm init或更新calico.yml文件,以與您的pod網(wǎng)絡相匹配。

kubectl apply -f https://docs.projectcalico.org/v3.10/manifests/calico.yaml

K8S云計算系列-(3),kubernetes,云計算,容器
如果安裝flannel網(wǎng)絡插件,必須通過kubeadm init配置–pod-network-cidr=10.10.0.0/16參數(shù)。
驗證網(wǎng)絡插件
安裝了pod網(wǎng)絡后,確認coredns以及其他pod全部運行正常,查看master節(jié)點狀態(tài)為Ready
kubectl get nodes
kubectl -n kube-system get pods

K8S云計算系列-(3),kubernetes,云計算,容器
至此,Kubernetes 的 Master 節(jié)點就部署完成了。如果只需要一個單節(jié)點的 Kubernetes,現(xiàn)在你就可以使用了。文章來源地址http://www.zghlxwxcb.cn/news/detail-719706.html

到了這里,關于K8S云計算系列-(3)的文章就介紹完了。如果您還想了解更多內容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。如若轉載,請注明出處: 如若內容造成侵權/違法違規(guī)/事實不符,請點擊違法舉報進行投訴反饋,一經(jīng)查實,立即刪除!

領支付寶紅包贊助服務器費用

相關文章

  • Kubernetes(K8s):容器化應用的航空母艦

    Kubernetes(K8s)是一個開源的容器編排系統(tǒng),它的出現(xiàn)就像是為容器化應用提供了一艘強大的航空母艦。在這艘母艦上,你的應用容器就像是一架架戰(zhàn)斗機,Kubernetes負責指揮它們起飛、飛行、降落,確保它們能在正確的時間、正確的地點執(zhí)行任務。 Pod: Kubernetes的基本飛行編隊

    2024年04月08日
    瀏覽(17)
  • Kubernetes (K8s) 解讀:微服務與容器編排的未來

    Kubernetes (K8s) 解讀:微服務與容器編排的未來

    ???? 博主貓頭虎(????)帶您 Go to New World??? ????貓頭虎建議程序員必備技術棧一覽表??: ??? 全棧技術 Full Stack : ?? MERN/MEAN/MEVN Stack | ?? Jamstack | ?? GraphQL | ?? RESTful API | ? WebSockets | ?? CI/CD | ?? Git Version Control | ?? DevOps ?? 前端技術 Frontend : ??? HTML CSS |

    2024年02月09日
    瀏覽(34)
  • kubernetes(k8s)為容器和 Pod 分配內存資源

    kubernetes(k8s)為容器和 Pod 分配內存資源

    展示如何將內存請求(request)和內存限制(limit)分配給一個容器。 我們保障容器擁有它請求數(shù)量的內存,但不允許使用超過限制數(shù)量的內存。 創(chuàng)建新的命名空間 編輯yaml文件 配置文件的 args 部分提供了容器啟動時的參數(shù)。 “–vm-bytes”, “150M” 參數(shù)告知容器嘗試分配 15

    2024年02月15日
    瀏覽(109)
  • Kubernetes 系列:了解 k8s 架構(一)

    當下,我們很多項目于都在 Cloud Native (云原生)的上面,這種方法旨在使組織能夠確保可用性并快速響應和適應變化,云原生其實就是一組本質上支持在不同云環(huán)境(公共云、私有云或混合云)上大規(guī)模構建、運行和管理應用程序的實踐和技術。 云原生離不開兩個概念: 容器

    2024年02月10日
    瀏覽(21)
  • kubernetes(k8s)大白學習02:容器和docker基礎、使用、架構學習

    kubernetes(k8s)大白學習02:容器和docker基礎、使用、架構學習

    簡單說:容器(container)就是計算機上的一個沙盒進程,它與計算機上的所有其它進程相隔離。 這種隔離是怎么做到的呢?它利用了內核提供的 namespace 和 cgroup 這 2 種技術。這些技術能力在 Linux 中已經(jīng)存在了很長時間。而 Docker 或容器技術致力于將這些功能更易于使用和更

    2024年02月07日
    瀏覽(45)
  • 【Kubernetes】k8s中容器之間、pod之間如何進行網(wǎng)絡通信?

    【Kubernetes】k8s中容器之間、pod之間如何進行網(wǎng)絡通信?

    首先來回顧一下Pod: Pod 是用于構建應用程序的最小可部署對象。單個 Pod 代表集群中正在運行的工作負載,并 封裝一個或多個 Docker 容器、任何所需的存儲以及唯一的 IP 地址 。 集群中每一個 Pod 都會獲得自己的、 獨一無二的 IP 地址。一個Pod里的一組容器共享相同的IP地址。

    2024年04月28日
    瀏覽(107)
  • 云計算與Kubernetes(k8s)

    云計算與Kubernetes(k8s)

    參考鏈接: https://blog.csdn.net/zkkzpp258/article/details/86541362 https://blog.csdn.net/Bubbler_726/article/details/85596418 https://blog.csdn.net/wx_15323880413/article/details/100516698 發(fā)展經(jīng)歷 云計算交互標準(云服務分類) 公有云、私有云、混合云 Kubernetes特點 組件說明 K8S核心架構原理 (重點!?。?Master

    2024年02月11日
    瀏覽(13)
  • 從零開始學習K8s系列——Kubernetes指南

    作者:禪與計算機程序設計藝術 Kubernetes(簡稱k8s)是一個開源的,用于自動部署、擴展和管理容器化的應用的平臺。它主要提供四大功能,包括: 服務發(fā)現(xiàn)和負載均衡 :Kubernetes集群中的服務能夠自動地尋找其他運行著的服務并進行負載均衡。 存儲編排 :Kubernetes允許用戶

    2024年02月06日
    瀏覽(50)
  • Kubernetes(K8s)從入門到精通系列之十七:minikube啟動K8s dashboard

    Kubernetes(K8s)從入門到精通系列之十六:linux服務器安裝minikube的詳細步驟

    2024年02月12日
    瀏覽(20)
  • 拋棄對外依賴,OpenEular(歐拉)操作系統(tǒng)為企業(yè)搭建獨立的K8S集群環(huán)境! 容器編排平臺丨Kubernetes 丨自主可控的云計算系統(tǒng)丨容器化技術丨 新一代云計算基礎設施丨分布式應用部署和管理

    拋棄對外依賴,OpenEular(歐拉)操作系統(tǒng)為企業(yè)搭建獨立的K8S集群環(huán)境! 容器編排平臺丨Kubernetes 丨自主可控的云計算系統(tǒng)丨容器化技術丨 新一代云計算基礎設施丨分布式應用部署和管理

    需要提前準備好OpenEular操作系統(tǒng)虛擬機3臺,本文使用模板機創(chuàng)建。 如今,隨著云計算、大數(shù)據(jù)、人工智能等技術的快速發(fā)展,越來越多的企業(yè)開始使用容器化技術來提高開發(fā)和交付速度。而Kubernetes則成為了最受歡迎的容器編排平臺之一。然而,許多企業(yè)往往將Kubernetes部署在

    2024年02月11日
    瀏覽(35)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領取紅包,優(yōu)惠每天領

二維碼1

領取紅包

二維碼2

領紅包