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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > Ubuntu >内容正文

Ubuntu

在Ubuntu18上搭建K8s集群(1.19.3)

發布時間:2024/4/11 Ubuntu 31 豆豆
生活随笔 收集整理的這篇文章主要介紹了 在Ubuntu18上搭建K8s集群(1.19.3) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

環境準備

為了演示簡單,準備兩臺4GB內存,20GB硬盤的虛擬機,操作系統為ubuntu18.04-server

角色IPHostName
Master192.168.47.144master-k8s
Node192.168.47.145node1-k8s

前置準備

前置準備部分在master和node1都要分別執行:

  • 換源
  • sudo cp /etc/apt/sources.list /etc/apt/sources.list.bak sudo vim /etc/apt/sources.list # 阿里源 deb http://mirrors.aliyun.com/ubuntu/ bionic main restricted universe multiverse deb http://mirrors.aliyun.com/ubuntu/ bionic-security main restricted universe multiverse deb http://mirrors.aliyun.com/ubuntu/ bionic-updates main restricted universe multiverse deb http://mirrors.aliyun.com/ubuntu/ bionic-proposed main restricted universe multiverse deb http://mirrors.aliyun.com/ubuntu/ bionic-backports main restricted universe multiverse deb-src http://mirrors.aliyun.com/ubuntu/ bionic main restricted universe multiverse deb-src http://mirrors.aliyun.com/ubuntu/ bionic-security main restricted universe multiverse deb-src http://mirrors.aliyun.com/ubuntu/ bionic-updates main restricted universe multiverse deb-src http://mirrors.aliyun.com/ubuntu/ bionic-proposed main restricted universe multiverse deb-src http://mirrors.aliyun.com/ubuntu/ bionic-backports main restricted universe multiverse sudo apt update && sudo apt upgrade
  • 配置靜態IP
  • 設置root用戶密碼,并使用root用戶登錄

    sudo passwd root su root

    分別配置master和node1的靜態ip:

    vim /etc/netplan/00-installer-config.yaml # master-k8s network:ethernets:ens33:addresses: [192.168.47.144/24]dhcp4: falsegateway4: 192.168.47.2nameservers:addresses: [192.168.47.2]optional: trueversion: 2 # node1-k8s network:ethernets:ens33:addresses: [192.168.47.145/24]dhcp4: falsegateway4: 192.168.47.2nameservers:addresses: [192.168.47.2]optional: trueversion: 2

    應用剛才的修改

    netplan apply
  • 修改hostname和host
  • vim /etc/hostname vim /etc/hosts

    添加以下兩行(根據自己的ip和hostname修改)

    192.168.47.144 master-k8s 192.168.47.145 node1-k8s

    重啟機器使改動生效

  • 測試下兩臺虛擬機是否互通,是否能連網
  • cws@master-k8s:~$ ping 192.168.47.145 PING 192.168.47.145 (192.168.47.145) 56(84) bytes of data. 64 bytes from 192.168.47.145: icmp_seq=1 ttl=64 time=0.459 ms 64 bytes from 192.168.47.145: icmp_seq=2 ttl=64 time=0.355 ms 64 bytes from 192.168.47.145: icmp_seq=3 ttl=64 time=1.76 ms 64 bytes from 192.168.47.145: icmp_seq=4 ttl=64 time=0.346 ms 64 bytes from 192.168.47.145: icmp_seq=5 ttl=64 time=0.375 ms ^C --- 192.168.47.145 ping statistics --- 5 packets transmitted, 5 received, 0% packet loss, time 4070ms rtt min/avg/max/mdev = 0.346/0.659/1.760/0.551 ms cws@master-k8s:~$ ping www.baidu.com PING www.a.shifen.com (163.177.151.110) 56(84) bytes of data. 64 bytes from 163.177.151.110 (163.177.151.110): icmp_seq=1 ttl=128 time=7.83 ms 64 bytes from 163.177.151.110 (163.177.151.110): icmp_seq=2 ttl=128 time=8.11 ms 64 bytes from 163.177.151.110 (163.177.151.110): icmp_seq=3 ttl=128 time=7.75 ms 64 bytes from 163.177.151.110 (163.177.151.110): icmp_seq=4 ttl=128 time=8.01 ms 64 bytes from 163.177.151.110 (163.177.151.110): icmp_seq=5 ttl=128 time=7.80 ms ^C --- www.a.shifen.com ping statistics --- 5 packets transmitted, 5 received, 0% packet loss, time 4005ms rtt min/avg/max/mdev = 7.759/7.904/8.111/0.145 ms
  • 禁止交換分區
  • vim /etc/fstab

    注釋掉最后一行

    安裝docker

    安裝docker也要分別在master和node1分別執行

    > curl -fsSL https://get.docker.com | sudo sh -s -- --mirror Aliyun > sudo usermod -aG docker $USER > sudo mkdir -p /etc/docker > sudo tee /etc/docker/daemon.json <<-'EOF'{"exec-opts": ["native.cgroupdriver=systemd"],"log-driver": "json-file","log-opts": {"max-size": "100m"},"storage-driver": "overlay2","registry-mirrors": ["https://docker.mirrors.ustc.edu.cn/"]}EOF > sudo systemctl daemon-reload > sudo systemctl restart docker

    檢查docker是否安裝成功

    cws@master-k8s:~$ sudo docker run hello-world Unable to find image 'hello-world:latest' locally latest: Pulling from library/hello-world 0e03bdcc26d7: Pull complete Digest: sha256:31b9c7d48790f0d8c50ab433d9c3b7e17666d6993084c002c2ff1ca09b96391d Status: Downloaded newer image for hello-world:latestHello from Docker! This message shows that your installation appears to be working correctly.To generate this message, Docker took the following steps:1. The Docker client contacted the Docker daemon.2. The Docker daemon pulled the "hello-world" image from the Docker Hub.(amd64)3. The Docker daemon created a new container from that image which runs theexecutable that produces the output you are currently reading.4. The Docker daemon streamed that output to the Docker client, which sent itto your terminal.To try something more ambitious, you can run an Ubuntu container with:$ docker run -it ubuntu bashShare images, automate workflows, and more with a free Docker ID:https://hub.docker.com/For more examples and ideas, visit:https://docs.docker.com/get-started/

    安裝k8s

  • 安裝k8s組件(分別在master和node1執行)
  • # 添加并信任APT證書 > curl https://mirrors.aliyun.com/kubernetes/apt/doc/apt-key.gpg | sudo apt-key add -# 添加源地址 > sudo add-apt-repository "deb https://mirrors.aliyun.com/kubernetes/apt/ kubernetes-xenial main"# 更新源并安裝(可以改成自己需要的版本) > sudo apt update && sudo apt install -y kubeadm=1.19.3-00 kubectl=1.19.3-00 kubelet=1.19.3-00# 添加 completion > source <(kubectl completion bash) > source <(kubeadm completion bash)
  • Master 節點啟動
    這一步在master執行,注意修改成自己的ip
  • sudo kubeadm init --apiserver-advertise-address 192.168.47.144 \--pod-network-cidr=10.244.0.0/16 \--image-repository registry.cn-hangzhou.aliyuncs.com/google_containers > sudo mkdir -p $HOME/.kube > sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config > sudo chown $(id -u):$(id -g) $HOME/.kube/config

    記錄輸出的橙色框中內容,待會會用到

  • 安裝網絡插件(Flannel 插件)
    在master執行
  • # kubectl apply -f https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.yml # 這里這個網址被墻了,需要下載kube-flannel.yml到本地,或者找一個能訪問的地址來替換 # 我找到一個gitee上的可自行嘗試: kubectl apply -f https://gitee.com/lm_py/kube-flannel.yaml/raw/master/kube-flannel.yml
  • 將node節點加入集群
    在node1,執行前面我們記錄下的代碼,這里要用root登錄
  • kubeadm join 192.168.47.144:6443 --token napprp.yj4u91sk5n1fq9ya \ > --discovery-token-ca-cert-hash sha256:4706f26a51a2303a2c79ea8137206d250450994bec9861ee3981cf934ae1ff89
  • 在master上 檢查一下是否成功
  • cws@master-k8s:~$ kubectl get nodes NAME STATUS ROLES AGE VERSION master-k8s Ready master 14m v1.19.3 node1-k8s Ready <none> 96s v1.19.3cws@master-k8s:~$ kubectl get pods -n kube-system NAME READY STATUS RESTARTS AGE coredns-6c76c8bb89-l8pz9 1/1 Running 0 17m coredns-6c76c8bb89-mv2lz 1/1 Running 0 17m etcd-master-k8s 1/1 Running 0 17m kube-apiserver-master-k8s 1/1 Running 0 17m kube-controller-manager-master-k8s 1/1 Running 0 17m kube-flannel-ds-tzn5b 1/1 Running 0 11m kube-flannel-ds-x8n2w 1/1 Running 0 4m18s kube-proxy-8dwtc 1/1 Running 0 17m kube-proxy-vz5jx 1/1 Running 0 4m18s kube-scheduler-master-k8s 1/1 Running 0 17mcws@master-k8s:~$ kubectl get pods -A NAMESPACE NAME READY STATUS RESTARTS AGE kube-system coredns-6c76c8bb89-l8pz9 1/1 Running 0 93m kube-system coredns-6c76c8bb89-mv2lz 1/1 Running 0 93m kube-system etcd-master-k8s 1/1 Running 0 93m kube-system kube-apiserver-master-k8s 1/1 Running 0 93m kube-system kube-controller-manager-master-k8s 1/1 Running 0 93m kube-system kube-flannel-ds-tzn5b 1/1 Running 0 86m kube-system kube-flannel-ds-x8n2w 1/1 Running 0 80m kube-system kube-proxy-8dwtc 1/1 Running 0 93m kube-system kube-proxy-vz5jx 1/1 Running 0 80m kube-system kube-scheduler-master-k8s 1/1 Running 0 93m

    到這里集群就搭建成功了

    測試集群

    在Kubernetes集群中創建一個pod,驗證是否正常運行:
    在master執行

    $ kubectl create deployment nginx --image=nginx $ kubectl expose deployment nginx --port=80 --type=NodePort $ kubectl get pod,svc


    片刻后,可以看到輸出了端口號
    訪問地址:http://NodeIP:Port,(我的是192.168.47.145:31984)
    可以看到nginx的歡迎頁面,說明成功

    總結

    以上是生活随笔為你收集整理的在Ubuntu18上搭建K8s集群(1.19.3)的全部內容,希望文章能夠幫你解決所遇到的問題。

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