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

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 人文社科 > 生活经验 >内容正文

生活经验

【CentOS】利用Kubeadm部署Kubernetes (K8s)

發(fā)布時間:2023/11/28 生活经验 40 豆豆
生活随笔 收集整理的這篇文章主要介紹了 【CentOS】利用Kubeadm部署Kubernetes (K8s) 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

【CentOS】利用Kubeadm部署Kubernetes (K8s)【閱讀時間:約10分鐘】

  • 一、概述
  • 二、系統(tǒng)環(huán)境&項目介紹
    • 1.系統(tǒng)環(huán)境
    • 2.項目的任務(wù)要求
  • 三、具體實驗流程
      • 1 系統(tǒng)準(zhǔn)備
      • 2 安裝常用包
      • 3 使用aliyun源安裝docker-ce
      • 4 安裝kubectl、kubelet、kubeadm
      • 5 初始化k8s集群
      • 6 安裝calico網(wǎng)絡(luò)
      • 7 安裝kubernetes-dashboard
    • 8、構(gòu)建多節(jié)點集群
    • 9、構(gòu)建集群



一、概述

Kubernetes,也稱為K8s,是一個開源系統(tǒng),用于自動化容器化應(yīng)用程序的部署,擴展和管理。

它將組成應(yīng)用程序的容器分組為邏輯單元,以便于管理和發(fā)現(xiàn)。Kubernetes擁有15年在Google上運行生產(chǎn)工作負載的經(jīng)驗,并結(jié)合了社區(qū)中最好的想法和實踐。

它有如下三種特性:

  1. 行星尺度:按照與允許Google每周運行數(shù)十億個容器的原則相同的原則設(shè)計,Kubernetes可以在不增加運營團隊的情況下進行擴展。

  2. 永不超越:無論是在本地測試還是在全球性企業(yè)中運行,Kubernetes的靈活性都會隨著您的需求而增長,無論您的需求多么復(fù)雜,它都能始終如一地輕松交付應(yīng)用程序。

  3. 在任何地方運行K8s:Kubernetes是開源的,可讓您自由利用本地,混合或公共云基礎(chǔ)架構(gòu),讓您毫不費力地將工作負載轉(zhuǎn)移到您認為重要的地方。



二、系統(tǒng)環(huán)境&項目介紹

1.系統(tǒng)環(huán)境

  1. 操作系統(tǒng):CentOS7
  2. 硬件信息:使用virtual box配置虛擬機(內(nèi)存3G、磁盤30G)
  3. 編程語言:GO 1.15.2

2.項目的任務(wù)要求

  1. 在CentOS上安裝Kubeadm
  2. 利用Kubeadm部署Kubernetes (K8s)



三、具體實驗流程

1 系統(tǒng)準(zhǔn)備

查看系統(tǒng)版本

[henryhzy@localhost ~]$ cat /etc/centos-release
CentOS Linux release 7.9.2009 (Core)

為了便于操作,下面使用root賬號避免出現(xiàn)權(quán)限不足等問題

[henryhzy@localhost ~]$ su
密碼:
[root@localhost henryhzy]# 

準(zhǔn)備三臺機子,一臺Master,兩臺Node
Master: 192.168.245.137
node1: 192.168.245.138
node2: 192.168.245.139

關(guān)閉centos自帶的防火墻

[root@localhost ~]# systemctl disable firewalld
Removed symlink /etc/systemd/system/multi-user.target.wants/firewalld.service.
Removed symlink /etc/systemd/system/dbus-org.fedoraproject.FirewallD1.service.
[root@localhost ~]# systemctl stop firewalld

查看并配置網(wǎng)絡(luò)

[root@localhost henryhzy]# cd ~
[root@localhost ~]# cat /etc/sysconfig/network-scripts/ifcfg-enp0s3
TYPE="Ethernet"
PROXY_METHOD="none"
BROWSER_ONLY="no"
BOOTPROTO="dhcp"
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="6b1cb5e9-115c-486b-a359-afcd0ebf8b49"
DEVICE="enp0s3"
ONBOOT="yes"
[root@localhost ~]# vim /etc/sysconfig/network-scripts/ifcfg-enp0s3
TYPE=Ethernet
PROXY_METHOD=none
BROWSER_ONLY=no
BOOTPROTO=static
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=039303a5-c70d-4973-8c91-97eaa071c23d
DEVICE=enp0s3
ONBOOT=yes
IPADDR=192.168.245.137
NETMASK=255.255.255.0
GATEWAY=192.168.245.1
DNS1=220.2.4.8

添加阿里源

[root@localhost ~]# rm -rfv /etc/yum.repos.d/*
[root@localhost ~]# curl -o /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-8.repo

查看并配置主機名
為了后續(xù)方便,每臺機器的hosts文件加上這個。

192.168.245.137 master01
192.168.245.138 note01
192.168.245.139 note02

下面的所有操作都以master01為例:

[root@master01 ~]# cat /etc/hosts
127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4
::1         localhost localhost.localdomain localhost6 localhost6.localdomain6
[root@master01 ~]# cat /etc/hosts
127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4
::1         localhost localhost.localdomain localhost6 localhost6.localdomain6
192.168.245.137 master01
192.168.245.138 node01
192.168.245.139 node02

關(guān)閉swap,注釋swap分區(qū)

[root@master01 ~]# swapoff -a
[root@master01 ~]# cat /etc/fstab#
# /etc/fstab
# Created by anaconda on Sat Sep 19 23:59:58 2020
#
# Accessible filesystems, by reference, are maintained under '/dev/disk'
# See man pages fstab(5), findfs(8), mount(8) and/or blkid(8) for more info
#
/dev/mapper/centos-root /                       xfs     defaults        0 0
UUID=a73a97a7-9657-4b96-a8d5-89babc1cc651 /boot                   xfs     defaults        0 0
/dev/mapper/centos-swap swap                    swap    defaults        0 0

配置內(nèi)核參數(shù),將橋接的IPv4流量傳遞到iptables的鏈

[root@master01 ~]# cat > /etc/sysctl.d/k8s.conf <<EOF
net.bridge.bridge-nf-call-ip6tables = 1
net.bridge.bridge-nf-call-iptables = 1
EOF
sysctl --system

2 安裝常用包

[root@master01 ~]# yum install vim bash-completion net-tools gcc -y

3 使用aliyun源安裝docker-ce

[root@master01 ~]# yum install -y yum-utils device-mapper-persistent-data lvm2
[root@master01 ~]# yum-config-manager --add-repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
[root@master01 ~]# yum -y install docker-ce

添加aliyundocker倉庫加速器

[root@master01 ~]# mkdir -p /etc/docker
[root@master01 ~]# tee /etc/docker/daemon.json <<-'EOF'
{"registry-mirrors": ["https://fl791z1h.mirror.aliyuncs.com"]
}
EOF
[root@master01 ~]# systemctl daemon-reload
[root@master01 ~]# systemctl restart docker

4 安裝kubectl、kubelet、kubeadm

添加阿里kubernetes源

[root@master01 ~]# 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

安裝

[root@master01 ~]# yum install kubectl kubelet kubeadm
[root@master01 ~]# systemctl enable kubelet

5 初始化k8s集群

[root@master01 ~]# kubeadm init --kubernetes-version=1.18.0  \
--apiserver-advertise-address=192.168.122.21   \
--image-repository registry.aliyuncs.com/google_containers  \
--service-cidr=10.10.0.0/16 --pod-network-cidr=10.122.0.0/16

POD的網(wǎng)段為: 10.122.0.0/16, api server地址就是master本機IP。

創(chuàng)建kubectl

[root@master01 ~]#  mkdir -p $HOME/.kube
[root@master01 ~]# sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
[root@master01 ~]# sudo chown $(id -u):$(id -g) $HOME/.kube/config

執(zhí)行下面命令,使kubectl可以自動補充

[root@master01 ~]# source <(kubectl completion bash)

6 安裝calico網(wǎng)絡(luò)

[root@master01 ~]# kubectl apply -f https://docs.projectcalico.org/manifests/calico.yaml

7 安裝kubernetes-dashboard

官方部署dashboard的服務(wù)沒使用nodeport,將yaml文件下載到本地,在service里添加nodeport

[root@master01 ~]# wget  https://raw.githubusercontent.com/kubernetes/dashboard/v2.0.0-rc7/aio/deploy/recommended.yaml
[root@master01 ~]# vim recommended.yaml
kind: Service
apiVersion: v1
metadata:labels:k8s-app: kubernetes-dashboardname: kubernetes-dashboardnamespace: kubernetes-dashboard
spec:type: NodePortports:- port: 443targetPort: 8443nodePort: 30000selector:k8s-app: kubernetes-dashboard[root@master01 ~]# kubectl create -f recommended.yaml

使用token進行登錄,執(zhí)行下面命令獲取token

[root@master01 ~]# kubectl describe secrets -n kubernetes-dashboard kubernetes-dashboard-token-t4hxz  | grep token | awk 'NR==3{print $2}'

8、構(gòu)建多節(jié)點集群

構(gòu)建Node節(jié)點,前邊4步是一樣的,按照上邊流程一步一走走完。

1.啟動firewall

    systemctl start firewalld

2.添加例外

    firewall-cmd --zone=public --add-port=6443/tcp --permanent

3.重載

    firewall-cmd --reload

9、構(gòu)建集群

以node01加入master01為例:

[root@node01 ~]# kubeadm join 192.168.245.137:6443 --token xxx --discovery-token-ca-cert-hash  xxx --ignore-preflight-errors=Swap

總結(jié)

以上是生活随笔為你收集整理的【CentOS】利用Kubeadm部署Kubernetes (K8s)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。