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

Kubernetes(K8S)集群部署

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

目錄

一、創(chuàng)建3臺虛擬機

二、為每臺虛擬機安裝Docker

三、安裝kubelet

3.1 安裝要求

3.2 為每臺服務(wù)器完成前置設(shè)置

3.3 為每臺服務(wù)器安裝kubelet、kubeadm、kubectl

四、使用kubeadm引導(dǎo)集群

4.1 master服務(wù)器

4.2 node1、node2服務(wù)器

4.3 初始化主節(jié)點

4.4 work節(jié)點加入集群

五、token過期怎么辦?

六、安裝可視化界面dashboard

6.1 安裝

6.2 暴露端口

6.3 訪問web界面

6.4 創(chuàng)建訪問賬號

6.5 生成令牌

6.6 登錄

七、寫在后面的話


一、創(chuàng)建3臺虛擬機

具體操作步驟可以參考之前的教程,建議是先安裝一臺,然后克隆虛擬機,這樣速度快。

注意:在克隆時記得修改Mac地址、IP地址、UUID和主機名。(最后別忘了保存下快照~)

安裝VMware虛擬機、Linux系統(tǒng)(CentOS7)_何蘇三月的博客-CSDN博客

克隆Linux系統(tǒng)(centos)_linux克隆_何蘇三月的博客-CSDN博客

kubernetes 集群部署,編程環(huán)境安裝,kubernetes,容器,云原生,javakubernetes 集群部署,編程環(huán)境安裝,kubernetes,容器,云原生,java?

二、為每臺虛擬機安裝Docker

請參考:Docker安裝、常見命令、安裝常見容器(Mysql、Redis等)_docker redis 容器_何蘇三月的博客-CSDN博客

教程中安裝docker的命令

yum install docker-ce docker-ce-cli containerd.io

原來是默認安裝最新版,這里需要指定一下版本,目的是保障后續(xù)安裝k8s不出問題:

yum install -y docker-ce-20.10.7 docker-ce-cli-20.10.7  containerd.io-1.4.6

其他步驟不變。

三、安裝kubelet

3.1 安裝要求

  • 一臺兼容的 Linux 主機。Kubernetes 項目為基于 Debian 和 Red Hat 的 Linux 發(fā)行版以及一些不提供包管理器的發(fā)行版提供通用的指令。

  • 每臺機器 2 GB 或更多的 RAM (如果少于這個數(shù)字將會影響你應(yīng)用的運行內(nèi)存)

  • 2 CPU 核或更多

  • 集群中的所有機器的網(wǎng)絡(luò)彼此均能相互連接(公網(wǎng)和內(nèi)網(wǎng)都可以)

    • 設(shè)置防火墻放行規(guī)則

  • 節(jié)點之中不可以有重復(fù)的主機名、MAC 地址或 product_uuid。請參見這里了解更多詳細信息。

    • 設(shè)置不同hostname
  • 開啟機器上的某些端口。請參見這里 了解更多詳細信息。

    • ???????內(nèi)網(wǎng)互信
  • 禁用交換分區(qū)。為了保證 kubelet 正常工作,你 必須 禁用交換分區(qū)。

    • ???????永久關(guān)閉

3.2 為每臺服務(wù)器完成前置設(shè)置

#各個機器設(shè)置自己的域名
hostnamectl set-hostname xxxx


# 將 SELinux 設(shè)置為 permissive 模式(相當(dāng)于將其禁用)
sudo setenforce 0
sudo sed -i 's/^SELINUX=enforcing$/SELINUX=permissive/' /etc/selinux/config

#關(guān)閉swap
swapoff -a  
sed -ri 's/.*swap.*/#&/' /etc/fstab

#允許 iptables 檢查橋接流量
cat <<EOF | sudo tee /etc/modules-load.d/k8s.conf
br_netfilter
EOF

cat <<EOF | sudo tee /etc/sysctl.d/k8s.conf
net.bridge.bridge-nf-call-ip6tables = 1
net.bridge.bridge-nf-call-iptables = 1
EOF
sudo sysctl --system

kubernetes 集群部署,編程環(huán)境安裝,kubernetes,容器,云原生,java

kubernetes 集群部署,編程環(huán)境安裝,kubernetes,容器,云原生,java

kubernetes 集群部署,編程環(huán)境安裝,kubernetes,容器,云原生,java

3.3 為每臺服務(wù)器安裝kubelet、kubeadm、kubectl

kubelet - “廠長”

kubectl - 程序員敲命令行的命令窗

kubeadm - 引導(dǎo)創(chuàng)建集群的

# 1.先配置K8S去哪兒下載的地址信息
cat <<EOF > /etc/yum.repos.d/kubernetes.repo
[kubernetes]
name=Kubernetes
baseurl=http://mirrors.aliyun.com/kubernetes/yum/repos/kubernetes-el7-x86_64
enabled=1
gpgcheck=0
repo_gpgcheck=0
gpgkey=http://mirrors.aliyun.com/kubernetes/yum/doc/yum-key.gpg
   http://mirrors.aliyun.com/kubernetes/yum/doc/rpm-package-key.gpg
exclude=kubelet kubeadm kubectl
EOF
# 2. 安裝
sudo yum install -y kubelet-1.20.9 kubeadm-1.20.9 kubectl-1.20.9 --disableexcludes=kubernetes
# 3. 啟動kubelet
sudo systemctl enable --now kubelet

??systemctl status kubelet 查看狀態(tài)會發(fā)現(xiàn),kubelet 現(xiàn)在每隔幾秒就會重啟,因為它陷入了一個等待 kubeadm 指令的死循環(huán)。這是正?,F(xiàn)象不用管!

kubernetes 集群部署,編程環(huán)境安裝,kubernetes,容器,云原生,java

kubernetes 集群部署,編程環(huán)境安裝,kubernetes,容器,云原生,java

kubernetes 集群部署,編程環(huán)境安裝,kubernetes,容器,云原生,java

四、使用kubeadm引導(dǎo)集群

kubernetes 集群部署,編程環(huán)境安裝,kubernetes,容器,云原生,java

4.1 master服務(wù)器

下載各個機器需要的鏡像,以下只需要在master機器上執(zhí)行:

# 1. 定義一個for循環(huán),需要的東西下載
sudo tee ./images.sh <<-'EOF'
#!/bin/bash
images=(
kube-apiserver:v1.20.9
kube-proxy:v1.20.9
kube-controller-manager:v1.20.9
kube-scheduler:v1.20.9
coredns:1.7.0
etcd:3.4.13-0
pause:3.2
)
for imageName in ${images[@]} ; do
docker pull registry.cn-hangzhou.aliyuncs.com/lfy_k8s_images/$imageName
done
EOF
# 2. 賦予權(quán)限,讓它下載這些東西
chmod +x ./images.sh && ./images.sh

kubernetes 集群部署,編程環(huán)境安裝,kubernetes,容器,云原生,java

kubernetes 集群部署,編程環(huán)境安裝,kubernetes,容器,云原生,java

kubernetes 集群部署,編程環(huán)境安裝,kubernetes,容器,云原生,java

4.2 node1、node2服務(wù)器

從圖上可以知道,從節(jié)點也需要安裝kube-proxy。我們可以只下載這個鏡像,當(dāng)然了為了避免出現(xiàn)意外,我們也可以都下載下來。

方法完全參考4.1

4.3 初始化主節(jié)點

1.首先給所有的服務(wù)器都添加一下k8s110這臺服務(wù)器的域名映射

#所有機器添加master域名映射,以下需要修改為自己的內(nèi)網(wǎng)ip地址
echo "192.168.37.110  cluster-endpoint" >> /etc/hosts

kubernetes 集群部署,編程環(huán)境安裝,kubernetes,容器,云原生,java

2.然后只在k8s110這臺服務(wù)器上執(zhí)行主節(jié)點初始化過程:

#主節(jié)點初始化
kubeadm init \
--apiserver-advertise-address=192.168.37.110 \
--control-plane-endpoint=cluster-endpoint \
--image-repository registry.cn-hangzhou.aliyuncs.com/lfy_k8s_images \
--kubernetes-version v1.20.9 \
--service-cidr=10.96.0.0/16 \
--pod-network-cidr=192.168.50.0/24

#要求所有網(wǎng)絡(luò)范圍不重疊 --pod-network-cidr  --service-cidr --apiserver-advertise-address 都不能重疊

kubernetes 集群部署,編程環(huán)境安裝,kubernetes,容器,云原生,java

如果出現(xiàn)上述錯誤,則執(zhí)行如下命令:

sysctl -w net.ipv4.ip_forward=1

kubernetes 集群部署,編程環(huán)境安裝,kubernetes,容器,云原生,java

然后重新執(zhí)行

kubernetes 集群部署,編程環(huán)境安裝,kubernetes,容器,云原生,java

最后看到如下畫面則表示初始化成功!

kubernetes 集群部署,編程環(huán)境安裝,kubernetes,容器,云原生,java

這段還比較重要的,它告訴我們怎么使用這個集群信息等等,所以我們把文本單獨復(fù)制出來

Your Kubernetes control-plane has initialized successfully!

To start using your cluster, you need to run the following as a regular user:

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

Alternatively, if you are the root user, you can run:

  export KUBECONFIG=/etc/kubernetes/admin.conf

You should now deploy a pod network to the cluster.
Run "kubectl apply -f [podnetwork].yaml" with one of the options listed at:
  https://kubernetes.io/docs/concepts/cluster-administration/addons/

You can now join any number of control-plane nodes by copying certificate authorities
and service account keys on each node and then running the following as root:

  kubeadm join cluster-endpoint:6443 --token 3e54se.alzs9d1mkf30f25w \
    --discovery-token-ca-cert-hash sha256:689c076e294bdbb588103a51aaa7248b8a0df34bde634a6189d311ad46a02856 \
    --control-plane

Then you can join any number of worker nodes by running the following on each as root:

kubeadm join cluster-endpoint:6443 --token 3e54se.alzs9d1mkf30f25w \
    --discovery-token-ca-cert-hash sha256:689c076e294bdbb588103a51aaa7248b8a0df34bde634a6189d311ad46a02856

那么按照它的要求一步一步執(zhí)行吧!

3.按要求創(chuàng)建文件夾復(fù)制文件給予權(quán)限等操作

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

kubernetes 集群部署,編程環(huán)境安裝,kubernetes,容器,云原生,java

然后我們查看一下集群的所有結(jié)點:

#查看集群所有節(jié)點
kubectl get nodes

kubernetes 集群部署,編程環(huán)境安裝,kubernetes,容器,云原生,java

發(fā)現(xiàn)k8s110這臺服務(wù)器就是master節(jié)點了,但是它的狀態(tài)是NotReady。

沒關(guān)系按照它的要求繼續(xù)執(zhí)行,下一步說需要安裝一個網(wǎng)絡(luò)插件。

4.安裝網(wǎng)絡(luò)插件

可以有多種安裝選擇,我們就用calico

curl https://docs.projectcalico.org/v3.20/manifests/calico.yaml -O

kubernetes 集群部署,編程環(huán)境安裝,kubernetes,容器,云原生,java

下載成功,我們calico.yaml配置文件就有了。

重要提示??:如果我們在初始化主節(jié)點時,修改了--pod-network-cidr=192.168.0.0/16,那么我們就要進入這個配置文件,將我們修改后的ip地址寫上去。

kubernetes 集群部署,編程環(huán)境安裝,kubernetes,容器,云原生,java

ok,有了這個配置文件,就可以通過如下命令為k8s安裝calico插件所需要的東西了

#根據(jù)配置文件,給集群創(chuàng)建資源(以后通過該命令為k8s創(chuàng)建資源,不限于calico)
kubectl apply -f calico.yaml

?然后執(zhí)行命令安裝calico網(wǎng)絡(luò)插件

kubernetes 集群部署,編程環(huán)境安裝,kubernetes,容器,云原生,java

如果出現(xiàn)上述提示,說明我們的yaml文件有可能換行符搞錯了等等。

kubernetes 集群部署,編程環(huán)境安裝,kubernetes,容器,云原生,java

再重新下載就好了。

kubernetes 集群部署,編程環(huán)境安裝,kubernetes,容器,云原生,java

我們?nèi)绾尾榭醇翰渴鹆四男?yīng)用呢?

# 查看集群部署了哪些應(yīng)用
docker ps
# 等價于
kubectl get pods -A
# 運行中的應(yīng)用在docker里面叫容器,在k8s里面叫Pod,至于為什么,后續(xù)再講

kubernetes 集群部署,編程環(huán)境安裝,kubernetes,容器,云原生,java

kubernetes 集群部署,編程環(huán)境安裝,kubernetes,容器,云原生,java

以上,master節(jié)點就準備就緒了!

4.4 work節(jié)點加入集群

前面初始化主節(jié)點成功后的提示中有步驟:

kubeadm join cluster-endpoint:6443 --token 3e54se.alzs9d1mkf30f25w \
    --discovery-token-ca-cert-hash sha256:689c076e294bdbb588103a51aaa7248b8a0df34bde634a6189d311ad46a02856

我們只需要將它在另外兩臺服務(wù)器各自執(zhí)行即可。

如果加入報錯,請查看是否已經(jīng)關(guān)閉了防火墻,確保關(guān)閉防火墻然后執(zhí)行:

sysctl -w net.ipv4.ip_forward=1

kubernetes 集群部署,編程環(huán)境安裝,kubernetes,容器,云原生,java

ok,然后去master查看一下節(jié)點信息。

kubernetes 集群部署,編程環(huán)境安裝,kubernetes,容器,云原生,java

kubernetes 集群部署,編程環(huán)境安裝,kubernetes,容器,云原生,java

我們也可以通過linux的命令 watch -n 1 kubectl get pods -A,每一秒查看一下狀態(tài)

kubernetes 集群部署,編程環(huán)境安裝,kubernetes,容器,云原生,java

kubernetes 集群部署,編程環(huán)境安裝,kubernetes,容器,云原生,java

OK了,我們再看看

kubernetes 集群部署,編程環(huán)境安裝,kubernetes,容器,云原生,java

至此,K8S集群就跑起來了。

五、token過期怎么辦?

token超過24小時就失效了,如果我們還沒有加入從節(jié)點,或者想加入新的從節(jié)點,可以在master節(jié)點執(zhí)行如下命令,讓它重新生成

kubeadm token create --print-join-command

六、安裝可視化界面dashboard

6.1 安裝

kubectl apply -f https://raw.githubusercontent.com/kubernetes/dashboard/v2.3.1/aio/deploy/recommended.yaml

kubernetes 集群部署,編程環(huán)境安裝,kubernetes,容器,云原生,java

如果網(wǎng)絡(luò)不好安裝不了就復(fù)制下面的,將它寫入到一個yaml文件中,然后執(zhí)行該文件即可:

# Copyright 2017 The Kubernetes Authors.
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
#     http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.

apiVersion: v1
kind: Namespace
metadata:
  name: kubernetes-dashboard

---

apiVersion: v1
kind: ServiceAccount
metadata:
  labels:
    k8s-app: kubernetes-dashboard
  name: kubernetes-dashboard
  namespace: kubernetes-dashboard

---

kind: Service
apiVersion: v1
metadata:
  labels:
    k8s-app: kubernetes-dashboard
  name: kubernetes-dashboard
  namespace: kubernetes-dashboard
spec:
  ports:
    - port: 443
      targetPort: 8443
  selector:
    k8s-app: kubernetes-dashboard

---

apiVersion: v1
kind: Secret
metadata:
  labels:
    k8s-app: kubernetes-dashboard
  name: kubernetes-dashboard-certs
  namespace: kubernetes-dashboard
type: Opaque

---

apiVersion: v1
kind: Secret
metadata:
  labels:
    k8s-app: kubernetes-dashboard
  name: kubernetes-dashboard-csrf
  namespace: kubernetes-dashboard
type: Opaque
data:
  csrf: ""

---

apiVersion: v1
kind: Secret
metadata:
  labels:
    k8s-app: kubernetes-dashboard
  name: kubernetes-dashboard-key-holder
  namespace: kubernetes-dashboard
type: Opaque

---

kind: ConfigMap
apiVersion: v1
metadata:
  labels:
    k8s-app: kubernetes-dashboard
  name: kubernetes-dashboard-settings
  namespace: kubernetes-dashboard

---

kind: Role
apiVersion: rbac.authorization.k8s.io/v1
metadata:
  labels:
    k8s-app: kubernetes-dashboard
  name: kubernetes-dashboard
  namespace: kubernetes-dashboard
rules:
  # Allow Dashboard to get, update and delete Dashboard exclusive secrets.
  - apiGroups: [""]
    resources: ["secrets"]
    resourceNames: ["kubernetes-dashboard-key-holder", "kubernetes-dashboard-certs", "kubernetes-dashboard-csrf"]
    verbs: ["get", "update", "delete"]
    # Allow Dashboard to get and update 'kubernetes-dashboard-settings' config map.
  - apiGroups: [""]
    resources: ["configmaps"]
    resourceNames: ["kubernetes-dashboard-settings"]
    verbs: ["get", "update"]
    # Allow Dashboard to get metrics.
  - apiGroups: [""]
    resources: ["services"]
    resourceNames: ["heapster", "dashboard-metrics-scraper"]
    verbs: ["proxy"]
  - apiGroups: [""]
    resources: ["services/proxy"]
    resourceNames: ["heapster", "http:heapster:", "https:heapster:", "dashboard-metrics-scraper", "http:dashboard-metrics-scraper"]
    verbs: ["get"]

---

kind: ClusterRole
apiVersion: rbac.authorization.k8s.io/v1
metadata:
  labels:
    k8s-app: kubernetes-dashboard
  name: kubernetes-dashboard
rules:
  # Allow Metrics Scraper to get metrics from the Metrics server
  - apiGroups: ["metrics.k8s.io"]
    resources: ["pods", "nodes"]
    verbs: ["get", "list", "watch"]

---

apiVersion: rbac.authorization.k8s.io/v1
kind: RoleBinding
metadata:
  labels:
    k8s-app: kubernetes-dashboard
  name: kubernetes-dashboard
  namespace: kubernetes-dashboard
roleRef:
  apiGroup: rbac.authorization.k8s.io
  kind: Role
  name: kubernetes-dashboard
subjects:
  - kind: ServiceAccount
    name: kubernetes-dashboard
    namespace: kubernetes-dashboard

---

apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRoleBinding
metadata:
  name: kubernetes-dashboard
roleRef:
  apiGroup: rbac.authorization.k8s.io
  kind: ClusterRole
  name: kubernetes-dashboard
subjects:
  - kind: ServiceAccount
    name: kubernetes-dashboard
    namespace: kubernetes-dashboard

---

kind: Deployment
apiVersion: apps/v1
metadata:
  labels:
    k8s-app: kubernetes-dashboard
  name: kubernetes-dashboard
  namespace: kubernetes-dashboard
spec:
  replicas: 1
  revisionHistoryLimit: 10
  selector:
    matchLabels:
      k8s-app: kubernetes-dashboard
  template:
    metadata:
      labels:
        k8s-app: kubernetes-dashboard
    spec:
      containers:
        - name: kubernetes-dashboard
          image: kubernetesui/dashboard:v2.3.1
          imagePullPolicy: Always
          ports:
            - containerPort: 8443
              protocol: TCP
          args:
            - --auto-generate-certificates
            - --namespace=kubernetes-dashboard
            # Uncomment the following line to manually specify Kubernetes API server Host
            # If not specified, Dashboard will attempt to auto discover the API server and connect
            # to it. Uncomment only if the default does not work.
            # - --apiserver-host=http://my-address:port
          volumeMounts:
            - name: kubernetes-dashboard-certs
              mountPath: /certs
              # Create on-disk volume to store exec logs
            - mountPath: /tmp
              name: tmp-volume
          livenessProbe:
            httpGet:
              scheme: HTTPS
              path: /
              port: 8443
            initialDelaySeconds: 30
            timeoutSeconds: 30
          securityContext:
            allowPrivilegeEscalation: false
            readOnlyRootFilesystem: true
            runAsUser: 1001
            runAsGroup: 2001
      volumes:
        - name: kubernetes-dashboard-certs
          secret:
            secretName: kubernetes-dashboard-certs
        - name: tmp-volume
          emptyDir: {}
      serviceAccountName: kubernetes-dashboard
      nodeSelector:
        "kubernetes.io/os": linux
      # Comment the following tolerations if Dashboard must not be deployed on master
      tolerations:
        - key: node-role.kubernetes.io/master
          effect: NoSchedule

---

kind: Service
apiVersion: v1
metadata:
  labels:
    k8s-app: dashboard-metrics-scraper
  name: dashboard-metrics-scraper
  namespace: kubernetes-dashboard
spec:
  ports:
    - port: 8000
      targetPort: 8000
  selector:
    k8s-app: dashboard-metrics-scraper

---

kind: Deployment
apiVersion: apps/v1
metadata:
  labels:
    k8s-app: dashboard-metrics-scraper
  name: dashboard-metrics-scraper
  namespace: kubernetes-dashboard
spec:
  replicas: 1
  revisionHistoryLimit: 10
  selector:
    matchLabels:
      k8s-app: dashboard-metrics-scraper
  template:
    metadata:
      labels:
        k8s-app: dashboard-metrics-scraper
      annotations:
        seccomp.security.alpha.kubernetes.io/pod: 'runtime/default'
    spec:
      containers:
        - name: dashboard-metrics-scraper
          image: kubernetesui/metrics-scraper:v1.0.6
          ports:
            - containerPort: 8000
              protocol: TCP
          livenessProbe:
            httpGet:
              scheme: HTTP
              path: /
              port: 8000
            initialDelaySeconds: 30
            timeoutSeconds: 30
          volumeMounts:
          - mountPath: /tmp
            name: tmp-volume
          securityContext:
            allowPrivilegeEscalation: false
            readOnlyRootFilesystem: true
            runAsUser: 1001
            runAsGroup: 2001
      serviceAccountName: kubernetes-dashboard
      nodeSelector:
        "kubernetes.io/os": linux
      # Comment the following tolerations if Dashboard must not be deployed on master
      tolerations:
        - key: node-role.kubernetes.io/master
          effect: NoSchedule
      volumes:
        - name: tmp-volume
          emptyDir: {}

6.2 暴露端口

kubectl edit svc kubernetes-dashboard -n kubernetes-dashboard

type: ClusterIP 改為 type: NodePort

相當(dāng)于docker中將內(nèi)部的端口映射到linux的某個端口

kubernetes 集群部署,編程環(huán)境安裝,kubernetes,容器,云原生,java

找到放行的端口

kubectl get svc -A |grep kubernetes-dashboard
## 如果是云服務(wù)器,找到端口,在安全組放行

kubernetes 集群部署,編程環(huán)境安裝,kubernetes,容器,云原生,java

6.3 訪問web界面

訪問: https://集群任意IP:端口 https://192.168.37.110:31820/

kubernetes 集群部署,編程環(huán)境安裝,kubernetes,容器,云原生,java

發(fā)現(xiàn)虛擬機部署的無法訪問,云服務(wù)器則沒有問題。

我后面試了試Google、Edge都不行,華為瀏覽器、火狐瀏覽器可以訪問到:

kubernetes 集群部署,編程環(huán)境安裝,kubernetes,容器,云原生,java

?具體怎么解決,這個我放到后面有時間再處理吧~

6.4 創(chuàng)建訪問賬號

創(chuàng)建一個配置文件dash-usr.yaml

#創(chuàng)建訪問賬號,準備一個yaml文件; vi dash.yaml
apiVersion: v1
kind: ServiceAccount
metadata:
  name: admin-user
  namespace: kubernetes-dashboard
---
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRoleBinding
metadata:
  name: admin-user
roleRef:
  apiGroup: rbac.authorization.k8s.io
  kind: ClusterRole
  name: cluster-admin
subjects:
- kind: ServiceAccount
  name: admin-user
  namespace: kubernetes-dashboard

kubernetes 集群部署,編程環(huán)境安裝,kubernetes,容器,云原生,java

kubernetes 集群部署,編程環(huán)境安裝,kubernetes,容器,云原生,java

6.5 生成令牌

這個可視化界面是通過令牌登錄的,我們可以通過如下命令生成訪問令牌:

#獲取訪問令牌
kubectl -n kubernetes-dashboard get secret $(kubectl -n kubernetes-dashboard get sa/admin-user -o jsonpath="{.secrets[0].name}") -o go-template="{{.data.token | base64decode}}"

kubernetes 集群部署,編程環(huán)境安裝,kubernetes,容器,云原生,java

6.6 登錄

kubernetes 集群部署,編程環(huán)境安裝,kubernetes,容器,云原生,java

kubernetes 集群部署,編程環(huán)境安裝,kubernetes,容器,云原生,java

七、寫在后面的話

值得注意的是,我們的這些kubectl命令都需要在master節(jié)點上運行,別整岔劈了!

另外,我們重啟后,k8s集群正常來說就會自動啟動,只不過部分應(yīng)用需要時間慢慢啟動,等他們?nèi)縭unning

如果發(fā)現(xiàn)沒有重啟成功,那么檢查一下swap交換分區(qū)是不是沒有關(guān)閉?防火墻是不是打開了?docker是不是都啟動了?

遇事不要慌,逐一進行排查,這也是處理問題的能力。我在搭建的過程中,也遇到了不少的坑,正常。不過只要嚴格按照上述過程執(zhí)行,我相信問題不大的。

好了,我們下一個階段見!文章來源地址http://www.zghlxwxcb.cn/news/detail-726155.html

到了這里,關(guān)于Kubernetes(K8S)集群部署的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

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

領(lǐng)支付寶紅包贊助服務(wù)器費用

相關(guān)文章

  • 云原生|kubernetes|kubernetes集群部署神器kubekey安裝部署高可用k8s集群(半離線形式)

    云原生|kubernetes|kubernetes集群部署神器kubekey安裝部署高可用k8s集群(半離線形式)

    前面利用kubekey部署了一個簡單的非高可用,etcd單實例的kubernetes集群,經(jīng)過研究,發(fā)現(xiàn)部署過程可以簡化,省去了一部分下載過程(主要是下載kubernetes組件的過程)只是kubernetes版本會固定在1.22.16版本,etcd集群可以部署成生產(chǎn)用的外部集群,并且apiserver等等組件也是高可用,

    2024年02月15日
    瀏覽(28)
  • kubernetes集群(k8s)之安裝部署Calico 網(wǎng)絡(luò)

    kubernetes集群(k8s)之安裝部署Calico 網(wǎng)絡(luò)

    目錄 安裝部署Calico 網(wǎng)絡(luò) (一)環(huán)境準備 (二)部署docker環(huán)境 (三)部署kubernetes集群 (四)部署Calico網(wǎng)絡(luò)插件 IP地址 主機名 組件 192.168.100.131 k8s-master kubeadm、kubelet、kubectl、docker-ce 192.168.100.132 k8s-node01 kubeadm、kubelet、kubectl、docker-ce 192.168.100.133 k8s-node02 kubeadm、kubelet、kube

    2024年02月12日
    瀏覽(39)
  • 【k8s】基于Prometheus監(jiān)控Kubernetes集群安裝部署

    【k8s】基于Prometheus監(jiān)控Kubernetes集群安裝部署

    目錄 基于Prometheus監(jiān)控Kubernetes集群安裝部署 一、環(huán)境準備 二、部署kubernetes集群 三、部署Prometheus監(jiān)控平臺 四、部署Grafana服務(wù) 五、grafana? web操作 IP地址 主機名 組件 192.168.100.131 k8s-master kubeadm、kubelet、kubectl、docker-ce 192.168.100.132 k8s-node01 kubeadm、kubelet、kubectl、docker-ce 192.168

    2024年02月12日
    瀏覽(107)
  • Kubernetes(K8s)基本環(huán)境部署

    Kubernetes(K8s)基本環(huán)境部署

    此處只做學(xué)習(xí)使用,配置單master環(huán)境。 1、ip+主機規(guī)劃(準備五臺新機)==修改各個節(jié)點的主機名 注意:關(guān)閉防火墻與selinux 節(jié)點 主機名 ip 身份 joshua1 kubernetes-master.openlab.cn 192.168.134.151 master joshua2 kubernetes-work1.openlab.cn 192.168.134.152 work1 joshua3 kubernetes-work2.openlab.cn 192.168.134.153

    2024年02月10日
    瀏覽(28)
  • [kubernetes]二進制部署k8s集群-基于containerd

    k8s從1.24版本開始不再直接支持docker,但可以自行調(diào)整相關(guān)配置,實現(xiàn)1.24版本后的k8s還能調(diào)用docker。其實docker自身也是調(diào)用containerd,與其k8s通過docker再調(diào)用containerd,不如k8s直接調(diào)用containerd,以減少性能損耗。 除了containerd,比較流行的容器運行時還有podman,但是podman官方安裝

    2024年02月12日
    瀏覽(30)
  • Kubernetes技術(shù)--使用kubeadm快速部署一個K8s集群

    Kubernetes技術(shù)--使用kubeadm快速部署一個K8s集群

    這里我們配置一個 單master集群 。( 一個Master節(jié)點,多個Node節(jié)點 ) 1.硬件環(huán)境準備 一臺或多臺機器,操作系統(tǒng) CentOS7.x-86_x64 。這里我們使用安裝了CentOS7的三臺虛擬機 硬件配置 : 2GB或更多RAM , 2個CPU或更多CPU , 硬盤30GB或更多 2.主機名稱和IP地址規(guī)劃 3. 初始化準備工作 (1).關(guān)

    2024年02月10日
    瀏覽(122)
  • kubernetes(k8s)集群超級詳細超全安裝部署手冊

    kubernetes(k8s)集群超級詳細超全安裝部署手冊

    針對機器已安裝過k8s的情況,如未安裝過,請忽略。 k8s重置命令(如果初始化的過程出現(xiàn)了錯誤就使用重置命令): kubeadm reset 1.1 準備工作(所有的節(jié)點都執(zhí)行) 編輯4臺服務(wù)器的? /etc/hosts ?文件 ,添加下面內(nèi)容(每個節(jié)點都執(zhí)行一遍): 設(shè)置hostname(以node1為例): 或者修

    2024年03月22日
    瀏覽(19)
  • K8s(kubernetes)集群搭建及dashboard安裝、基礎(chǔ)應(yīng)用部署

    K8s(kubernetes)集群搭建及dashboard安裝、基礎(chǔ)應(yīng)用部署

    本質(zhì)是一組服務(wù)器集群,在集群每個節(jié)點上運行特定的程序,來對節(jié)點中的容器進行管理。實現(xiàn)資源管理的自動化。 自我修復(fù) 彈性伸縮 服務(wù)發(fā)現(xiàn) 負載均衡 版本回退 存儲編排 控制節(jié)點(master)-控制平面 APIserver :資源操作的唯一入口 scheduler :集群資源調(diào)度,將Pod調(diào)度到node節(jié)

    2024年02月08日
    瀏覽(32)
  • Centos7 安裝部署 Kubernetes(k8s) 高可用集群

    Centos7 安裝部署 Kubernetes(k8s) 高可用集群

    宿主機系統(tǒng) 集群角色 服務(wù)器IP 主機名稱 容器 centos7.6 master 192.168.2.150 ks-m1 docker centos7.6 master 192.168.2.151 ks-n1 docker centos7.6 master 192.168.2.152 ks-n2 docker 1.1 服務(wù)器初始化及網(wǎng)絡(luò)配置 VMware安裝Centos7并初始化網(wǎng)絡(luò)使外部可以訪問** 注意事項:請一定要看完上面這篇文章再執(zhí)行下面的操

    2024年02月03日
    瀏覽(55)
  • [Kubernetes]8. K8s使用Helm部署mysql集群(主從數(shù)據(jù)庫集群)

    [Kubernetes]8. K8s使用Helm部署mysql集群(主從數(shù)據(jù)庫集群)

    上一節(jié)講解了K8s包管理工具Helm、使用Helm部署mongodb集群(主從數(shù)據(jù)庫集群),這里來看看 K8s使用Helm部署mysql集群(主從數(shù)據(jù)庫集群) 無本地存儲: 當(dāng)重啟的時候,數(shù)據(jù)庫消失 (1).打開官網(wǎng)的應(yīng)用中心 打開應(yīng)用中心,搜索mysql (2).安裝? 1).添加repo倉庫 2).安裝 具體命令如下:? 3).自動生成

    2024年01月21日
    瀏覽(235)

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

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

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

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

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包