您好,登錄后才能下訂單哦!
kubernetes 簡介
kubernetes,簡稱K8s,是一個開源的,用于管理云平臺中多個主機上的容器化的應用,Kubernetes的目標是讓部署容器化的應用簡單并且高效(powerful),Kubernetes提供了應用部署,規劃,更新,維護的一種機制。
優勢:
傳統的應用部署方式是通過插件或腳本來安裝應用。這樣做的缺點是應用的運行、配置、管理、所有生存周期將與當前操作系統綁定,這樣做并不利于應用的升級更新/回滾等操作,當然也可以通過創建虛擬機的方式來實現某些功能,但是虛擬機非常重,并不利于可移植性。
新的方式是通過部署容器方式實現,每個容器之間互相隔離,每個容器有自己的文件系統 ,容器之間進程不會相互影響,能區分計算資源。相對于虛擬機,容器能快速部署,由于容器與底層設施、機器文件系統解耦的,所以它能在不同云、不同版本操作系統間進行遷移。
容器占用資源少、部署快,每個應用可以被打包成一個容器鏡像,每個應用與容器間成一對一關系也使容器有更大優勢,使用容器可以在build或release 的階段,為應用創建容器鏡像,因為每個應用不需要與其余的應用堆棧組合,也不依賴于生產環境基礎結構,這使得從研發到測試、生產能提供一致環境。類似地,容器比虛擬機輕量、更“透明”,這更便于監控和管理。
? Master 組件
? 節點(Node)組件
Kubernetes是Google開源的一個容器編排引擎,它支持自動化部署、大規模可伸縮、應用容器化管理。在生產環境中部署一個應用程序時,通常要部署該應用的多個實例以便對應用請求進行負載均衡。
在Kubernetes中,我們可以創建多個容器,每個容器里面運行一個應用實例,然后通過內置的負載均衡策略,實現對這一組應用實例的管理、發現、訪問,而這些細節都不需要運維人員去進行復雜的手工配置和處理。
Kubernetes 特點
可移植: 支持公有云,私有云,混合云,多重云(multi-cloud)
可擴展: 模塊化,插件化,可掛載,可組合
自動化: 自動部署,自動重啟,自動復制,自動伸縮/擴展
Master 組件
1.1kube-apiserver
1.2ETCD
1.3kube-controller-manager
1.4cloud-controller-manager
1.5kube-scheduler
1.6插件 addons
1.6.1DNS
1.6.2用戶界面
1.6.3容器資源監測
1.6.4Cluster-level Logging
節點(Node)組件
2.1kubelet
2.2kube-proxy
2.3docker
2.4RKT
2.5supervisord
2.6fluentd
Master 組件
Master組件提供集群的管理控制中心。Master組件可以在集群中任何節點上運行。但是為了簡單起見,通常在一臺VM/機器上啟動所有Master組件,并且不會在此VM/機器上運行用戶容器。請參考構建高可用群集以來構建multi-master-VM。
kube-apiserver
kube-apiserver用于暴露Kubernetes API。任何的資源請求/調用操作都是通過kube-apiserver提供的接口進行。請參閱構建高可用群集。
ETCD
etcd是Kubernetes提供默認的存儲系統,保存所有集群數據,使用時需要為etcd數據提供備份計劃。
kube-controller-manager
kube-controller-manager運行管理控制器,它們是集群中處理常規任務的后臺線程。邏輯上,每個控制器是一個單獨的進程,但為了降低復雜性,它們都被編譯成單個二進制文件,并在單個進程中運行。
這些控制器包括:
節點(Node)控制器。
副本(Replication)控制器:負責維護系統中每個副本中的pod。
端點(Endpoints)控制器:填充Endpoints對象(即連接Services&Pods)。
Service Account和Token控制器:為新的Namespace創建默認帳戶訪問API Token。
cloud-controller-manager
云控制器管理器負責與底層云提供商的平臺交互。云控制器管理器是Kubernetes版本1.6中引入的,目前還是Alpha的功能。
云控制器管理器僅運行云提供商特定的(controller loops)控制器循環。可以通過將--cloud-providerflag設置為external啟動kube-controller-manager ,來禁用控制器循環。
cloud-controller-manager 具體功能:
節點(Node)控制器
路由(Route)控制器
Service控制器
卷(Volume)控制器
kube-scheduler
kube-scheduler監視新創建沒有分配到Node的Pod,為Pod選擇一個Node。
插件 addons
插件(addon)是實現集群pod和Services功能的。Pod由Deployments,ReplicationController等進行管理。Namespace 插件對象是在kube-system Namespace中創建。
DNS
雖然不嚴格要求使用插件,但Kubernetes集群都應該具有集群 DNS。
群集 DNS是一個DNS服務器,能夠為 Kubernetes services提供 DNS記錄。
由Kubernetes啟動的容器自動將這個DNS服務器包含在他們的DNS searches中。
用戶界面
kube-ui提供集群狀態基礎信息查看。
容器資源監測
容器資源監控提供一個UI瀏覽監控數據。
Cluster-level Logging
Cluster-level logging,負責保存容器日志,搜索/查看日志。
節點(Node)組件
節點組件運行在Node,提供Kubernetes運行時環境,以及維護Pod。
kubelet
kubelet是主要的節點代理,它會監視已分配給節點的pod,具體功能:
安裝Pod所需的volume。
下載Pod的Secrets。
Pod中運行的 docker(或experimentally,rkt)容器。
定期執行容器健康檢查。
Reports the status of the pod back to the rest of the system, by creating amirror podif necessary.
Reports the status of the node back to the rest of the system.
kube-proxy
kube-proxy通過在主機上維護網絡規則并執行連接轉發來實現Kubernetes服務抽象。
docker
docker用于運行容器。
RKT
rkt運行容器,作為docker工具的替代方案。
supervisord
supervisord是一個輕量級的監控系統,用于保障kubelet和docker運行。
fluentd
fluentd是一個守護進程,可提供cluster-level logging.。
集群環境:
系統centos7
master、node
----------------(前期調試在每臺進行操作)----------------
設置三臺機器的主機名:
master上執行:hostnamectl --static set-hostname k8s-master
node1上執行:hostnamectl --static set-hostname k8s-node-1
node2上執行:hostnamectl --static set-hostname k8s-node-2
修改每臺hosts文件互解:
cat << EOF >> /etc/hosts
192.168.180.128 k8s-master
192.168.180.133 k8s-node-1
EOF
關閉防火墻和selinux
systemctl stop firewalld && systemctl disable firewalld && setenforce 0
setenforce 0
sed -i 's/^SELINUX=enforcing$/SELINUX=permissive/' /etc/selinux/config
開啟linux路由轉發功能
echo "1" > /proc/sys/net/ipv4/ip_forward
設置ssh使服務器之間互信
mkdir ~/.ssh
ssh-keygen -t rsa
ssh-copy-id -i ~/.ssh/id_rsa.pub user@server
kubernetes集群組件(需要配置的)
-etcd :一個高可用的K/V鍵值對存儲和服務發現系統
-flannel:實現跨主機的容器網絡的通信
-kube-apiserver:提供kubernetes集群的api調用
-kube-controller-manager:確保集群服務
-kube-scheduler調度容器:分配到node
-kubelet:在node節點上按照配置文件中定義的容器規格啟動容器
-kube-proxy提供網絡代理服務
下載依賴包-lvm2-docker等
yum update -y && yum -y install yum-utils device-mapper-persistent-data lvm2
yum-config-manager --enable docker-ce-nightly
yum-config-manager --enable docker-ce-test
添加官方yum庫
sudo yum-config-manager \ --add-repo \ https://download.docker.com/linux/centos/docker-ce.repo
安裝docker
sudo yum install docker-ce docker-ce-cli containerd.io
systemctl enable docker && systemctl start docker
yum-config-manager --enable docker-ce-nightly
yum-config-manager --enable docker-ce-test
或者使用腳本一鍵安裝
curl -fsSL "https://get.docker.com/" | sh
systemctl enable --now docker
修改docker cgroup驅動,與k8s一致,使用systemd 修改docker cgroup驅動:
native.cgroupdriver=systemd
cat > /etc/docker/daemon.json <<EOF
{
"exec-opts": ["native.cgroupdriver=systemd"],
"log-driver": "json-file",
"log-opts": {
"max-size": "100m"
},
"storage-driver": "overlay2",
"storage-opts": [
"overlay2.override_kernel_check=true"
]
}
EOF
systemctl restart docker # 重啟使配置生效
所有節點安裝/kubeadm/kubelet/kubectl
添加YUM源
-------------------阿里云YUM-------------------
cat > /etc/yum.repos.d/kubernetes.repo << EOF
[kubernetes]
name=Kubernetes
baseurl=https://mirrors.aliyun.com/kubernetes/yum/repos/kubernetes-el7-x86_64
enabled=1
gpgcheck=0
repo_gpgcheck=0
gpgkey=https://mirrors.aliyun.com/kubernetes/yum/doc/yum-key.gpg https://mirrors.aliyun.com/kubernetes/yum/doc/rpm-package-key.gpg
EOF
-------------------Google YUM-------------------
cat <<EOF > /etc/yum.repos.d/kubernetes.repo
[kubernetes]
name=Kubernetes
baseurl=https://packages.cloud.google.com/yum/repos/kubernetes-el7-x86_64
enabled=1
gpgcheck=1
repo_gpgcheck=1
gpgkey=https://packages.cloud.google.com/yum/doc/yum-key.gpg https://packages.cloud.google.com/yum/doc/rpm-package-key.gpg
EOF
安裝kubelet kubeadm kubectl
yum install -y kubelet kubeadm kubectl --disableexcludes=kubernetes
systemctl enable --now kubelet
----------------(master操作)--------------
部署Kubernetes Master
在(Master)執行。
kubeadm init \
--apiserver-advertise-address=192.168.180.128 \
--image-repository registry.aliyuncs.com/google_containers \
--service-cidr=10.1.0.0/16 \
--pod-network-cidr=10.244.0.0/16
--apiserver-advertise-address 指定與其它節點通信的接口
--pod-network-cidr 指定pod網絡子網,使用fannel網絡必須使用這個CIDR
--image-repository=registry.aliyuncs.com/google_containers初始化時可以添加下載鏡像的源地址。因為默認是google的,國內無法訪問。這樣前面就不要提前下載好鏡像了。
用戶設置權限(root用戶也需要執行)
master 執行
mkdir -p $HOME/.kube
sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
sudo chown $(id -u):$(id -g) $HOME/.kube/config
安裝Pod網絡插件(CNI)
master 執行
kubectl apply -f https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.yml
----------------(node操作)--------------
node節點加入到master
node1:kubeadm join 192.168.1.100:6443 --token te0fvk.dbf7t1qsu4kpvxe2 \
--discovery-token-ca-cert-hash sha256:dd74bd1b52313dd8664b8147cb6d18a6f8b25c6c5aa4debc3
結果檢查
node節點加入master輸出信息如下:
[preflight] Running pre-flight checks
[preflight] Reading configuration from the cluster...
[preflight] FYI: You can look at this config file with 'kubectl -n kube-system get cm kubeadm-config -oyaml'
[kubelet-start] Downloading configuration for the kubelet from the "kubelet-config-1.15" ConfigMap in the kube-system namespace
[kubelet-start] Writing kubelet configuration to file "/var/lib/kubelet/config.yaml"
[kubelet-start] Writing kubelet environment file with flags to file "/var/lib/kubelet/kubeadm-flags.env"
[kubelet-start] Activating the kubelet service
[kubelet-start] Waiting for the kubelet to perform the TLS Bootstrap...
This node has joined the cluster:
* Certificate signing request was sent to apiserver and a response was received.
* The Kubelet was informed of the new secure connection details.
Run 'kubectl get nodes' on the control-plane to see this node join the cluster.
----------------(master操作)--------------
master 節點執行kubectl get nodes
[root@master ~]# kubectl get nodesNAME
STATUS ROLES AGE VERSION
master Ready master 14m v1.15.2
node1 Ready <none> 3m36s v1.15.2
node2 Ready <none> 101s v1.15.2
測試kubernetes集群
在Kubernetes集群中創建一個pod,驗證是否正常運行:
$ kubectl create deployment nginx --image=nginx
kubectl expose deployment nginx --port=80 --type=NodePort
kubectl get pod,svc
《《 初始化 Kubernetes (端口被占用的問題)
報錯信息
[root@k8s-master01 ~]# kubeadm init --config config.yaml[init] Using Kubernetes version: v1.10.0
[init] Using Authorization modes: [Node RBAC]
[preflight] Running pre-flight checks.
[preflight] Some fatal errors occurred:
[ERROR Port-6443]: Port 6443 is in use
[ERROR Port-10250]: Port 10250 is in use
[ERROR Port-10251]: Port 10251 is in use
[ERROR Port-10252]: Port 10252 is in use
[ERROR FileAvailable--etc-kubernetes-manifests-kube-apiserver.yaml]: /etc/kubernetes/manifests/kube-apiserver.yaml already exists
[ERROR FileAvailable--etc-kubernetes-manifests-kube-controller-manager.yaml]: /etc/kubernetes/manifests/kube-controller-manager.yaml already exists
[ERROR FileAvailable--etc-kubernetes-manifests-kube-scheduler.yaml]: /etc/kubernetes/manifests/kube-scheduler.yaml already exists
[preflight] If you know what you are doing, you can make a check non-fatal with--ignore-preflight-errors=...
解決方案:發現殺死進程都沒有用,最終重啟一下kubeadm就可以了,如下:
[root@k8s-master01 ~]# kubeadm reset 》》
部署 Dashboard
kubectl apply -f https://raw.githubusercontent.com/kubernetes/dashboard/v1.10.1/src/deploy/recommended/kubernetes-dashboard.yaml
wget https://raw.githubusercontent.com/kubernetes/dashboard/v1.5.1/src/deploy/kubernetes-dashboard.yaml
默認鏡像國內無法訪問,修改鏡像地址為: lizhenliang/kubernetes-dashboard-amd64:v1.10.1
默認Dashboard只能集群內部訪問,修改Service為NodePort類型,暴露到外部:
vim kubernetes-dashboard.yaml
kind: Service
apiVersion: v1
metadata:
labels:
k8s-app: kubernetes-dashboard
name: kubernetes-dashboard
namespace: kube-system
spec:
type: NodePort
ports:
- port: 443
targetPort: 8443
nodePort: 30001
selector:
k8s-app: kubernetes-dashboard
$ kubectl apply -f kubernetes-dashboard.yaml
注意:安裝v1.10.1之前先將配置文件中版本信息v1.5.1修改為v1.10.1
docker pull gcr.io/google_containers/kubernetes-dashboard-amd64:v1.10.1
創建service account并綁定默認cluster-admin管理員集群角色:
$ kubectl create serviceaccount dashboard-admin -n kube-system
kubectl create clusterrolebinding dashboard-admin --clusterrole=cluster-admin --serviceaccount=kube-system:dashboard-admin
kubectl describe secrets -n kube-system $(kubectl -n kube-system get secret | awk '/dashboard-admin/{print $1}')
使用輸出的token登錄Dashboard。
使用apiserver方式訪問平臺
注:自行修改ip以及端口
打開瀏覽器訪問 https://192.168.255.140:8443/api/v1/namespaces/kube-system/services/https:kubernetes-dashboard:/proxy/
報錯如下:
{
"kind": "Status",
"apiVersion": "v1",
"metadata": {
},
"status": "Failure",
"message": "services \"https:kubernetes-dashboard\" is forbidden: User \"system:anonymous\" cannot get services/proxy in the namespace \"kube-system\"",
"reason": "Forbidden",
"details": {
"name": "https:kubernetes-dashboard",
"kind": "services"
},
"code": 403
}
通過message和code,我們使用的是system:anonymous這樣的用戶來訪問位于kube-system命名空間中的名為https:kubernetes-dashboard的service資源。然后這個用戶沒有權限訪問,所以被拒絕了。
k8s中的用戶和認證及授權機制。
k8s中的用戶、認證及授權機制簡介,k8s中的用戶有兩種
真實用戶 :如kubelet
服務賬戶: 即service account(簡寫為sa)
k8s中的認證機制
k8s通過ClusterRoleBinding或者RoleBinding資源來實現對用戶權限的賦予。
ClusterRole或者Role:意思是集群角色或角色,他們是規定了一組對集群內資源的權限規則。
roles和clusterroles的區別在于: roles只能對某個命令空間內的資源定義權限。而集群角色定義的權限都是針對整個集群的命名空間的。
將用戶和role綁定起來就實現了對用戶權限的授予。
創建并導入認證證書
創建證書
首先需要確認kubectl命令的配置文件,默認情況下為/etc/kubernetes/admin.conf,而且已經自動創建在$HOME/.kube/config中,如果沒有創建則需要手動賦值。
cat $HOME/.kube/config
如果確認有集群的配置,則運行以下命令來生成一個p12格式的瀏覽器證書
先生成kubecfg-crt
grep 'client-certificate-data' ~/.kube/config | head -n 1 | awk '{print $2}' | base64 -d >> kubecfg.crt
生成kubecfg-key
grep 'client-key-data' ~/.kube/config | head -n 1 | awk '{print $2}' | base64 -d >> kubecfg.key
生成p12證書,按要求輸入密碼直接回車即可,密碼不要胡亂輸,后面給瀏覽器導入的時候要用。
openssl pkcs12 -export -clcerts -inkey kubecfg.key -in kubecfg.crt -out kubecfg.p12 -name "kubernetes-client"
運行完后在當前目錄會有個kubecfg.p12證書文件,將這個kubecfg.p12證書文件傳到桌面上,可以通過安裝yum install lrzsz,將文件發送到桌面上
[root@master1] ~$ sz kubecfg.p12
將證書導入chrome瀏覽器
點擊瀏覽器:菜單-設置-高級-管理證書
選擇“個人”這一欄(適用于chrome71以上版本,71以下不確定行不行),然后點擊導入kubecfg.p12。
剩下的步驟全部默認,完成后如下:
導入成功后,重啟瀏覽器
chrome://restart
注:使用如下鏈接,更改ip和端口訪問再次訪問
https://192.168.255.140:8443/api/v1/namespaces/kube-system/services/https:kubernetes-dashboard:/proxy/
此時會彈出類似如下的證書信息對話框,點擊確定即可。
點擊確定之后,會出現下面的界面
選擇登錄方式
kubeconfig、令牌、用戶名和密碼,直接訪問,不使用任何登錄,使用令牌方式登錄,全部資源訪問權限,先創建一個賬號,再創建一個有全部權限的clusterroles,將二者用clusterrolebinding綁定起來。
安裝yaml文件時,已創建了一個名為kubernetes-dashboard的服務賬戶,查看詳情
[root@master2] ~$ kubectl describe serviceaccount/kubernetes-dashboard -n kube-system
Name: kubernetes-dashboard
Namespace: kube-system
Labels: k8s-app=kubernetes-dashboard
Annotations: <none>
Image pull secrets: <none>
Mountable secrets: kubernetes-dashboard-token-jwld4
Tokens: kubernetes-dashboard-token-jwld4
Events: <none>
而kubernetes集群安裝好后,他會自動生成一些clusterroles集群權限對象,你可以用下面的命令查看都有哪些
[root@master2] ~$ kubectl get clusterroles
NAME AGE
admin 4h31m
cluster-admin 4h31m
edit 4h31m
flannel 3h68m
system:aggregate-to-admin 4h31m
system:aggregate-to-edit 4h31m
比如集群管理員,我們詳細的看一下,*號表示對所有資源有所有權限。
[root@master2] ~$ kubectl describe clusterroles/cluster-admin
Name: cluster-admin
Labels: kubernetes.io/bootstrapping=rbac-defaults
Annotations: rbac.authorization.kubernetes.io/autoupdate: true
PolicyRule:
Resources Non-Resource URLs Resource Names Verbs
--------- ----------------- -------------- -----
*.* [] [] [*]
[*] [] [*]
用戶和權限都有了,將他們綁定起來
將kubernetes-dashboard這個服務賬戶和cluster-admin這個集群管理員權限對象綁定起來。
##13. 創建一個yaml文件, vim dashboard.yaml,內容如下
apiVersion: rbac.authorization.k8s.io/v1beta1
kind: ClusterRoleBinding
metadata:
name: kubernetes-dashboard
labels:
k8s-app: kubernetes-dashboard
roleRef:
apiGroup: rbac.authorization.k8s.io
kind: ClusterRole
name: cluster-admin
subjects:
- kind: ServiceAccount
name: kubernetes-dashboard
namespace: kube-system
執行
[root@master2] ~$ kubectl create -f dashboard.yaml
查看是否創建成功
[root@master2] ~$ kubectl get clusterrolebindings kubernetes-dashboard
NAME AGE
kubernetes-dashboard 88s
找到kubernetes-dashboard賬戶的token,記下這串token,登錄的時候會使用,這個token默認是永久的。
kubectl -n kube-system describe secret $(kubectl -n kube-system get secret | grep kubernetes-dashboard-token | awk '{print $1}')
Name: kubernetes-dashboard-token-jwld4
Namespace: kube-system
Labels: <none>
Annotations: kubernetes.io/service-account.name: kubernetes-dashboard
kubernetes.io/service-account.uid: a2ced45f-8b61-11e9-b98f-0050563ff983
Type: kubernetes.io/service-account-token
Data
namespace: 11 bytes
token: eyJhbGciOiJSUzI1NiIsImtpZCI6IiJ9.eyJpc3MiOiJrdWJlcm5ldGVzL3NlcnZpY2VhY2NvdW50Iiwia3ViZXJuZXRlcy5pby9zZXJ2aWNlYWNjb3VudC9uYW1lc3BhY2UiOiJrdWJlLXN5c3RlbSIsImt1YmVybmV0ZXMuaW8vc2VydmljZWFjY291bnQvc2VjcmV0Lm5hbWUiOiJrdWJlcm5ldGVzLWRhc2hib2FyZC10b2tlbi1qd2xkNCIsImt1YmVybmV0ZXMuaW8vc2VydmljZWFjY291bnQvc2VydmljZS1hY2NvdW50Lm5hbWUiOiJrdWJlcm5ldGVzLWRhc2hib2FyZCIsImt1YmVybmV0ZXMuaW8vc2VydmljZWFjY291bnQvc2VydmljZS1hY2NvdW50LnVpZCI6ImEyY2VkNDVmLThiNjEtMTFlOS1iOThmLTAwNTA1NjNmZjk4MyIsInN1YiI6InN5c3RlbTpzZXJ2aWNlYWNjb3VudDprdWJlLXN5c3RlbTprdWJlcm5ldGVzLWRhc2hib2FyZCJ9.VzsWE80t7AEMB891rxBKJVMxwt5DtuzA23_-SLxxQcjpaB80LBfB09WqUSe6G6vrkRdpMQ3wDLA2SIFCQVAapAHl-J45NuPyhxh8A-DNpfGpEk3uxFqXkn5WXYasbeCIcHw6TII27PTwG6wgS_q1qEbOf4LYJHjExdqypIqAj__F2RRGTqER378qVvJrHJndL5M6W2PhINazLOEqezxKxDRBigMFU7luOYvWCxSPFhjSd3LrsMfWwSRY-Jq5-tUEhsI7uU7Yyb3UIDDiXex-8Mwbida_TgpcIZi6BaEclPygSSfq1a177r97hnxcdv02X9ooOghztSGKM-1bDBWhNg
ca.crt: 1025 bytes
再次訪問dashboard,輸入token登錄后界面如下;
此時訪問dashboard的主體是kubernetes-dashboard這個服務賬戶,它擁有對集群所有資源的所有使用權限。
通過web方式操作很方便,如下:進行擴縮容
生產環境要對不同的人賦予不同的權限,自定義資源訪問權限,用kubeconfig方式登錄,每次都要復制token,會比較麻煩
1、先把config文件復制到別的地方
[root@master2] ~$ cp .kube/config .
然后把一個具有全部訪問權限的token追加到最后一行。先找出token
kubectl -n kube-system describe secret $(kubectl -n kube-system get secret | grep admin-token | awk '{print $1}') |grep token|tail -1
追加到config中,如下
users:
- name: kubernetes-admin
user:
client-certificate-data: LS0tLS1CRUd....
client-key-data: LS0tLS1CRUdJTiBSU......
token: eyJhbGciO... ...
上傳到桌面,選擇登錄
使用用戶名密碼方式登錄,默認情況下用戶名密碼登錄沒有啟用。
如果沒有該參數,默認使用的是匿名用戶,并且無法檢查提供的憑據是否有效。
原因是Kubernetes 需要有配置如果要啟用用戶名和密碼驗證,必須在apiserver的部署文件中配置參數 --authorization-mode=ABAC和and --basic-auth-file。
然后在dashboard的部署文件中設置authentication-mode = basic。默認情況下,它的設置是--authentication-mode = token。
跳過登錄過程,直接訪問
添加參數- --enable-skip-login
containers:
- args:
- --auto-generate-certificates
- --enable-skip-login
官方文檔:
https://github.com/kubernetes/dashboard/wiki/Accessing-Dashboard—1.7.X-and-above
https://github.com/kubernetes/dashboard/wiki/Creating-sample-user
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。