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

歡迎訪問 生活随笔!

生活随笔

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

编程问答

使用RKE搭建docker-k8s集群

發布時間:2024/3/26 编程问答 42 豆豆
生活随笔 收集整理的這篇文章主要介紹了 使用RKE搭建docker-k8s集群 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

目錄

一:什么是RKE

二:k8s主機master的準備工作

1、修改master主機名(先配置一臺,克隆另外兩臺)

2、配置靜態ip地址

3、修改域名解析地址

4、下載一些常用軟件并禁用防火墻、selinux、swap分區

5、刪除全部docker文件及依賴包、鏡像、容器、卷

6、安裝docker,有很多安裝方式,可以去官網看。不要下最新版,不兼容

7、修改docker配置

8、建一個用戶并添加權限。

9、啟動ipv4轉發

二:克隆兩臺機器,并修改IP地址和主機名

1、同master主機一樣修改IP地址和主機名

2、建立SSH免密通道

三:RKE安裝及部署k8s

1、安裝RKE

2、授權并創建cluster.yml

3、安裝(冪等操作)

4、master主機上安裝kubectl交互工具。

四:創建pod并開啟nginx服務(可以在root用戶)

1、創建兩個.yml文件

2、創建pod并查看狀態

3、啟動service暴露端口

4、瀏覽器驗證

五:補充


一:什么是RKE

????????RKE是一款經過CNCF認證的開源Kubernetes發行版,可以在Docker容器內運行。它通過刪除大部分主機依賴項,并為部署、升級和回滾提供一個穩定的路徑,從而解決了Kubernetes最常見的安裝復雜性問題。

二:k8s主機master的準備工作

OShostnameIP
centos7k8s-master192.168.149.164
centos7k8s-node1192.168.149.165
centos7k8s-node2192.168.149.166

1、修改master主機名(先配置一臺,克隆另外兩臺)

vi /etc/hostname或者hostnamectl set-hostname k8s-master [root@k8s-master ~]# cat /etc/hostname k8s-master [root@k8s-master ~]#

2、配置靜態ip地址

vi /etc/sysconfig/network-scripts/ifcfg-ens33BOOTPROTO="static" DEVICE="ens33" ONBOOT="yes" IPADDR=192.168.149.164 PREFIX=24 GATEWAY=192.168.149.2 DNS1=114.114.114.114

改完后service network restart重啟網絡服務

3、修改域名解析地址

cat >> /etc/hosts << EOF 192.168.149.164 k8s-master 192.168.149.165 k8s-node1 192.168.149.166 k8s-node2 EOF

4、下載一些常用軟件并禁用防火墻、selinux、swap分區

yum install -y lrzsz yum install -y net-tools yum install -y wget yum install -y vim-enhanced yum install -y bash-completion yum install -y git yum install -y telnet yum install -y telnet-server ####全部建議永久關閉,避免重啟后服務報錯 # 關閉防火墻 systemctl stop firewalld systemctl disable firewalld# 關閉selinux sed -i 's/enforcing/disabled/' /etc/selinux/config # 永久 setenforce 0 # 臨時# 關閉swap swapoff -a # 臨時 sed -ri 's/.*swap.*/#&/' /etc/fstab # 永久

5、刪除全部docker文件及依賴包、鏡像、容器、卷

sudo yum remove docker \docker-client \docker-client-latest \docker-common \docker-latest \docker-latest-logrotate \docker-logrotate \docker-enginerm –rf /var/lib/docker/

6、安裝docker,有很多安裝方式,可以去官網看。不要下最新版,不兼容

官網提供多種方式安裝:Redirecting…

yum install docker -y [root@k8s-master ~]# docker -v Docker version 1.13.1, build 7d71120/1.13.1

7、修改docker配置

mkdir /etc/docker vi /etc/docker/daemon.json 添加: {"registry-mirrors": ["https://registry.docker-cn.com"],"dns":["114.114.114.114","8.8.8.8","8.8.4.4"] }

然后使之生效:systemctl daemon-reload
設置開機自啟:systemctl enable docker
啟動:systemctl start docker
測試:docker run hello-world

顯示 Hello from Docker! 即表示安裝成功

8、建一個用戶并添加權限。

useradd xxx passwd xxx usermod -aG docker xxxvi /etc/sudoers 找到這一行:"root ALL=(ALL) ALL", 在下面添加"xxx ALL=(ALL) ALL"(這里的xxx是你的用戶名)

9、啟動ipv4轉發

/etc/sysctl.confnet.ipv4.ip_forward = 1 net.bridge.bridge-nf-call-ip6tables = 1 net.bridge.bridge-nf-call-iptables = 1使之生效sudo sysctl -p

二:克隆兩臺機器,并修改IP地址和主機名

1、同master主機一樣修改IP地址和主機名

2、建立SSH免密通道

master主機這邊切換到普通用戶su - xxxssh-keygen #三次回車 生成秘鑰ssh-copy-id 用戶名@機器IP #輸入yes和密碼 發送公鑰,用戶名都是xxxssh 用戶名@機器IP #測試免密

三:RKE安裝及部署k8s

1、安裝RKE

下載地址:Release Release v0.2.4 · rancher/rke · GitHub

使用xftp拖下來:

2、授權并創建cluster.yml

改名并賦予可執行權限 [yuan@k8s-master ~]$ ls cluster.rkestate cluster.yml kube_config_cluster.yml rke [yuan@k8s-master ~]$ chmod +x rke同目錄下創建cluster.yml文件 [yuan@k8s-master ~]$ cat cluster.yml nodes:- address: 192.168.149.164user: yuanrole: [controlplane,etcd]- address: 192.168.149.165user: yuanrole: [etcd,worker]- address: 192.168.149.166user: yuanrole: [etcd,worker] [yuan@k8s-master ~]$

3、安裝(冪等操作)

./rke up --config cluster.yml

如果報錯Failed to get job complete status for job rke-network-plugin-deploy-job in namespace kube-system,檢查ssh免密通道是否建好,重新執行一遍。

完成后當前目錄下回生成kube_config_cluster.yml和cluster.rkestate文件

4、master主機上安裝kubectl交互工具。

下載v1.15.0,或者官網Install Tools | Kubernetes

curl -LO https://storage.googleapis.com/kubernetes-release/release/$(curl -s https://storage.googleapis.com/kubernetes-release/release/stable.txt)/bin/linux/amd64/kubectl

賦予可執行權限,放入bin目錄

chmod +x ./kubectl sudo mv ./kubectl /usr/local/bin/kubectl

拷貝文件kube_config_cluster.yml并重命名

#將集群認證憑據文件添加到系統變量 echo export KUBECONFIG=/home/rke/kube_config_cluster.yml >> ~/.bash_profilesource ~/.bash_profilekubectl get node #測試查看集群狀態和系統容器 kubectl get nodes -o wide kubectl get pods -A

四:創建pod并開啟nginx服務(可以在root用戶)

1、創建兩個.yml文件

[root@k8s-master ~]# cat nginx-dep.yml apiVersion: apps/v1 kind: Deployment metadata:name: nginx-deployment spec:selector:matchLabels:app: nginxreplicas: 2template:metadata:labels:app: nginxspec:containers:- name: nginximage: nginx:alpineports:- containerPort: 80 [root@k8s-master ~]# [root@k8s-master ~]# cat nginx-svc.yml apiVersion: v1 kind: Service metadata:name: nginx-service spec:selector:app: nginxports:- protocol: TCPport: 80targetPort: 80nodePort: 30080type: NodePort [root@k8s-master ~]#

2、創建pod并查看狀態

kubectl apply -f nginx-dep.ymlkubectl get deployment nginx-deployment -o wide[root@k8s-master ~]# kubectl get deployment nginx-deployment -o wide NAME READY UP-TO-DATE AVAILABLE AGE CONTAINERS IMAGES SELECTOR nginx-deployment 4/4 4 4 2d nginx nginx:alpine app=nginx [root@k8s-master ~]#

3、啟動service暴露端口

# 啟動服務 kubectl apply -f nginx-svc.yml # 查看 [root@k8s-master ~]# kubectl get svc nginx-service -o wide NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE SELECTOR nginx-service NodePort 10.43.222.41 <none> 80:30080/TCP 2d app=nginx # 詳細 [root@k8s-master ~]# kubectl describe svc nginx-service Name: nginx-service Namespace: default Labels: <none> Annotations: <none> Selector: app=nginx Type: NodePort IP Families: <none> IP: 10.43.222.41 IPs: <none> Port: <unset> 80/TCP TargetPort: 80/TCP NodePort: <unset> 30080/TCP Endpoints: 10.42.1.15:80,10.42.1.18:80,10.42.2.18:80 + 1 more... Session Affinity: None External Traffic Policy: Cluster Events: <none>

4、瀏覽器驗證

五:補充

查看節點信息:kubectl get nodes -o wide
查看有哪些pod:kubectl get pods -o wide
查看pod詳細信息:kubectl describe pod nginx-deployment-7b45b4c665-78kj6?
查看pod日志:kubectl logs nginx-deployment-7b45b4c665-78kj6
擴縮:kubectl scale deployment/nginx-deployment --replicas=10
回滾:kubectl rollout undo deployment/k8s-nginx-1.18
版本升級:kubectl set image deployment/k8s-nginx-1.18 nginx=nginx:2.10.1

總結

以上是生活随笔為你收集整理的使用RKE搭建docker-k8s集群的全部內容,希望文章能夠幫你解決所遇到的問題。

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