關于kubesphere1.20.0安裝詳細步驟
##準備環境
名稱 IP 系統
master 192.168.1.43 Centos7.9
node1 192.168.1.44 Centos7.9
node2 192.168.1.45 Centos7.9
NFS 192.168.1.46 Centos7.9
安裝docker
這里docker的安裝用腳本快速安裝,也可以yum安裝,這里就不多說了(:
根據規劃設定主機名
hostnamectl set-hostname master
hostnamectl set-hostname node1
hostnamectl set-hostname node2
在添加hosts
cat >> /etc/hosts << EOF
192.168.1.43 master
192.168.1.44 node1
192.168.1.45 node2
EOF
關閉防火墻
systemctl stop firewalld && systemctl disable firewalld
關閉selinux(在3臺機運行)
sed -i 's/enforcing/disabled/' /etc/selinux/config && setenforce 0
關閉swap
swapoff -a && sed -ri 's/.*swap.*/#&/' /etc/fstab
時間同步
yum install ntpdate -y && ntpdate time.windows.com
配置內核引數,將橋接的IPv4流量傳遞到iptables的鏈
cat > /etc/sysctl.d/k8s.conf <<EOF
net.bridge.bridge-nf-call-ip6tables = 1
net.bridge.bridge-nf-call-iptables = 1
EOF
使配置的內核引數生效
sysctl --system
添加kubernetes阿里YUM源
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
安裝kubectl、kubelet、kubeadm并設定開機啟動
yum install kubectl-1.20.0 kubelet-1.20.0 kubeadm-1.20.0 && systemctl enable kubelet && systemctl start kubelet
初始化k8s集群
kubeadm init --kubernetes-version=1.20.0 \
--apiserver-advertise-address=192.168.1.43 \
--image-repository registry.aliyuncs.com/google_containers \
--service-cidr=10.10.0.0/16 --pod-network-cidr=10.122.0.0/16
至此kubenetes已經安裝完成,初始化成功后根據生成kubectl jion樣式命令在弄的節點執行,可將該節點加入集群(注:初始化成功之后會有兩串命令一個是將改節點以master身份加入,另一個是作為node加入),添加完成之后輸入命令:kubectl get node 會顯示該集群的所有節點,但是此時的節點都為NotReady狀態,在添加網路插件之后,節點狀態為Ready
安裝flannel網路插件
kubectl apply -f https://docs.projectcalico.org/manifests/calico.yaml
發送admin.conf到所有節點,可以在任何一個節點管理集群
scp /etc/kubernetes/admin.conf root@node1:/etc/kubernetes/admin.conf
scp /etc/kubernetes/admin.conf root@node2:/etc/kubernetes/admin.conf
在node節點上加入環境變數
echo "export KUBECONFIG=/etc/kubernetes/admin.conf" >> /etc/profile
source /etc/profile
安裝NFS
安裝nfs-utils、rpcbind(master和node都安裝)
yum install nfs-utils rpcbind -y
啟動服務(注意服務啟動順序)
systemctl start rpcbind
systemctl start nfs
掛載目錄(在宿主機創建相應目錄)
mount -t nfs 192.168.1.46:/data/nfs /mnt
編輯exports,設定權限(這里的權限一定要給NFS的目錄寫的權限)
vim /etc/exports
/data/nfs *(rw,no_root_squash,sync)
查看是否掛載
showmount -e 192.168.1.43
生成stronge-class
編輯1.yaml檔案
---
apiVersion: v1
kind: ServiceAccount
metadata:
name: nfs-provisioner
---
kind: ClusterRole
apiVersion: rbac.authorization.k8s.io/v1
metadata:
name: nfs-provisioner-runner
namespace: default
rules:
- apiGroups: [""]
resources: ["persistentvolumes"]
verbs: ["get", "list", "watch", "create", "delete"]
- apiGroups: [""]
resources: ["persistentvolumeclaims"]
verbs: ["get", "list", "watch", "update"]
- apiGroups: ["storage.k8s.io"]
resources: ["storageclasses"]
verbs: ["get", "list", "watch"]
- apiGroups: [""]
resources: ["events"]
verbs: ["watch", "create", "update", "patch"]
- apiGroups: [""]
resources: ["services", "endpoints"]
verbs: ["get","create","list", "watch","update"]
- apiGroups: ["extensions"]
resources: ["podsecuritypolicies"]
resourceNames: ["nfs-provisioner"]
verbs: ["use"]
---
kind: ClusterRoleBinding
apiVersion: rbac.authorization.k8s.io/v1
metadata:
name: run-nfs-provisioner
subjects:
- kind: ServiceAccount
name: nfs-provisioner
namespace: default
roleRef:
kind: ClusterRole
name: nfs-provisioner-runner
apiGroup: rbac.authorization.k8s.io
編輯2.yaml檔案
kind: Deployment
apiVersion: apps/v1
metadata:
name: nfs-client-provisioner
spec:
selector:
matchLabels:
app: nfs-client-provisioner
replicas: 1
strategy:
type: Recreate
template:
metadata:
labels:
app: nfs-client-provisioner
spec:
serviceAccount: nfs-provisioner
containers:
- name: nfs-client-provisioner
image: vbouchaud/nfs-client-provisioner
volumeMounts:
- name: nfs-client
mountPath: /persistentvolumes
env:
- name: PROVISIONER_NAME
value: fuseim.pri/ifs
- name: NFS_SERVER
value: 192.168.1.46 ##NFS的IP
- name: NFS_PATH
value: /data/nfs ##宿主機NFS掛載的目錄
volu0mes:
- name: nfs-client
nfs:
server: 192.168.1.46 ##NFS的IP
path: /data/nfs ##宿主機NFS掛載的目錄
編輯3.yaml檔案
apiVersion: storage.k8s.io/v1
kind: StorageClass
metadata:
name: nfs-storage
provisioner: fuseim.pri/ifs
reclaimPolicy: Retain
按順序在master上執行
kubectl apply -f 1.yaml
kubectl apply -f 2.yaml
kubectl apply -f 3.yaml
設定默認存盤(檢查是否設定為默認存盤:kubectl get sc)
kubectl patch storageclass nfs-storage -p '{"metadata": {"annotations":{"storageclass.kubernetes.io/is-default-class":"true"}}}'
以上步驟都成功執行之后,開始安裝kubesphere
kubectl apply -f https://github.com/kubesphere/ks-installer/releases/download/v3.1.0/kubesphere-installer.yaml
kubectl apply -f https://github.com/kubesphere/ks-installer/releases/download/v3.1.0/cluster-configuration.yaml
檢查日志
kubectl logs -n kubesphere-system $(kubectl get pod -n kubesphere-system -l app=ks-install -o jsonpath='{.items[0].metadata.name}') -f
如果日志沒有失敗,在日志最后會輸出kubesphere的訪問地址以及登錄的賬號地址
參考文獻
##安裝Kubernetes:https://blog.csdn.net/u013218587/article/details/111186022
##nfs相關:https://www.cnblogs.com/whych/p/9196537.html
##設定默認存盤::https://blog.csdn.net/u011943534/article/details/100887530
##安裝kubesphere:https://kubesphere.com.cn/docs/quick-start/minimal-kubesphere-on-k8s/
##啟用可插拔熱鍵:https://kubesphere.com.cn/docs/quick-start/enable-pluggable-components/#%E5%9C%A8%E5%AE%89%E8%A3%85%E5%90%8E%E5%90%AF%E7%94%A8%E5%8F%AF%E6%8F%92%E6%8B%94%E7%BB%84%E4%BB%B6
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/291532.html
標籤:其他
上一篇:順序表的基本實作
