控制器Statefulset

Statefulset?控制器:概念卧晓、原理解讀?StatefulSet?是為了管理有狀態(tài)服務(wù)的問(wèn)題而設(shè)計(jì)的

有狀態(tài)服務(wù)?

StatefulSet?是有狀態(tài)的集合虱黄,管理有狀態(tài)的服務(wù)悦即,它所管理的?Pod?的名稱(chēng)不能隨意變化。數(shù)據(jù) 持久化的目錄也是不一樣橱乱,每一個(gè)?Pod?都有自己獨(dú)有的數(shù)據(jù)持久化存儲(chǔ)目錄辜梳。比如?MySQL?主 從、redis?集群等泳叠。

無(wú)狀態(tài)服務(wù)?

RC作瞄、Deployment、DaemonSet?都是管理無(wú)狀態(tài)的服務(wù)危纫,它們所管理的?Pod?的?IP宗挥、名字,啟 停順序等都是隨機(jī)的种蝶。個(gè)體對(duì)整體無(wú)影響属韧,所有?pod?都是共用一個(gè)數(shù)據(jù)卷的,部署的?tomcat?就 是無(wú)狀態(tài)的服務(wù)蛤吓,tomcat?被刪除,在啟動(dòng)一個(gè)新的?tomcat糠赦,加入到集群即可会傲,跟?tomcat?的名 字無(wú)關(guān)。


StatefulSet?由以下幾個(gè)部分組成:

1. Headless Service:用來(lái)定義?pod?網(wǎng)路標(biāo)識(shí)拙泽,生成可解析的?DNS?記錄

2. volumeClaimTemplates:存儲(chǔ)卷申請(qǐng)模板淌山,創(chuàng)建?pvc,指定?pvc?名稱(chēng)大小顾瞻,自動(dòng)創(chuàng)建?pvc泼疑,且?pvc?由存儲(chǔ)類(lèi)供應(yīng)。

3. StatefulSet:管理?pod?的


什么是?Headless service?

Headless service?

不分配?clusterIP荷荤,headless service?可以通過(guò)解析?service?的?DNS,返回所 有?Pod?的?dns?和?ip?地址?(statefulSet?部署的?Pod?才有?DNS)退渗,普通的?service,只能通過(guò)解析?service?的?DNS?返回?service?的?ClusterIP移稳。

為什么要用?headless service(沒(méi)有?service ip?的?service)?

在使用?Deployment?時(shí),創(chuàng)建的?Pod?名稱(chēng)是沒(méi)有順序的会油,是隨機(jī)字符串个粱,在用?statefulset?管理?pod?時(shí)要求?pod?名稱(chēng)必須是有序的 ,每一個(gè)?pod?不能被隨意取代翻翩,pod?重建后?pod?名稱(chēng)還是一樣的都许。因?yàn)?pod IP?是變化的,所以要用?Pod?名稱(chēng)來(lái)識(shí)別嫂冻。pod?名稱(chēng)是?pod?唯一性的標(biāo)識(shí)符胶征,必須持久穩(wěn)定有效。這時(shí)候要用到無(wú)頭服務(wù)桨仿,它可以給每個(gè)?Pod?一個(gè)唯一的名稱(chēng)睛低。


1.headless service?會(huì)為?service?分配一個(gè)域名

<service name>.$<namespace name>.svc.cluster.local

K8s?中資源的全局?FQDN?格式:?

Service_NAME.NameSpace_NAME.Domain.LTD.

Domain.LTD.=svc.cluster.local. ? ?#這是默認(rèn)?k8s?集群的域名。

FQDN?全稱(chēng)?Fully Qualified Domain Name?

即全限定域名:同時(shí)帶有主機(jī)名和域名的名稱(chēng)?FQDN = Hostname + DomainName

如 主機(jī)名是 god

域名是?baidu.com

FQDN= god.baidu.com


2.StatefulSet?會(huì)為關(guān)聯(lián)的?Pod?保持一個(gè)不變的?Pod Name statefulset?中?Pod?的名字格式為$(StatefulSet name)-$(pod?序號(hào))

3.StatefulSet?會(huì)為關(guān)聯(lián)的?Pod?分配一個(gè)?dnsName

$.$.$.svc.cluster.local

為什么要用?volumeClaimTemplate?

對(duì)于有狀態(tài)應(yīng)用都會(huì)用到持久化存儲(chǔ)蹬敲,比如?mysql?主從暇昂,由于主從數(shù)據(jù)庫(kù)的數(shù)據(jù)是不能存放在一 個(gè)目錄下的,每個(gè)?mysql?節(jié)點(diǎn)都需要有自己獨(dú)立的存儲(chǔ)空間伴嗡。而在?deployment?中創(chuàng)建的存儲(chǔ)卷 是一個(gè)共享的存儲(chǔ)卷急波,多個(gè)?pod?使用同一個(gè)存儲(chǔ)卷,它們數(shù)據(jù)是同步的瘪校,而?statefulset?定義中 的每一個(gè)?pod?都不能使用同一個(gè)存儲(chǔ)卷澄暮,這就需要使用?volumeClainTemplate,當(dāng)在使用?statefulset?創(chuàng)建?pod?時(shí)阱扬,volumeClainTemplate?會(huì)自動(dòng)生成一個(gè)?PVC泣懊,從而請(qǐng)求綁定一個(gè)?PV,每一個(gè)?pod?都有自己專(zhuān)用的存儲(chǔ)卷麻惶。Pod馍刮、PVC?和?PV?對(duì)應(yīng)的關(guān)系圖如下:



Statefulset?資源清單文件編寫(xiě)


kubectl explain statefulset.spec

apiVersion <string> ? ?#定義?statefulset?資源需要使用的?api?版本

kind。 ? ? ? ? ? ? ? ? ? ? ? ??#定義的資源類(lèi)型

metadata<Object> ? ??#元數(shù)據(jù)

spec <Object> ? ? ? ? ? ? #定義容器相關(guān)的信息

podManagementPolicy #pod?管理策略

replicas <integer> #副本數(shù)

revisionHistoryLimit <integer> #保留的歷史版本

selector <Object> -required- #標(biāo)簽選擇器窃蹋,選擇它所關(guān)聯(lián)的?pod

serviceName -required- #headless service?的名字

template <Object> -required- #生成?pod?的模板

updateStrategy <Object> #更新策略

volumeClaimTemplates<[]Object> #存儲(chǔ)卷申請(qǐng)模板

#查看?statefulset?的?spec.template?字段如何定義?

#對(duì)于?template?而言卡啰,其內(nèi)部定義的就是?pod,pod?模板是一個(gè)獨(dú)立的對(duì)象

KIND: StatefulSet

VERSION:? apps/v1

RESOURCE: template <Object>

DESCRIPTION:

? ? template is the object that describes the pod that will be created if

? ? insufficient replicas are detected. Each pod stamped out by the StatefulSet

? ? will fulfill this Template, but have a unique identity from the rest of the

? ? StatefulSet.

? ? PodTemplateSpec describes the data a pod should have when created from a

? ? template


statefulset?資源中有兩個(gè)?spec?字段警没。第一個(gè)?spec?聲明的是?statefulset?定 義多少個(gè)?Pod?副本(默認(rèn)將僅部署?1?個(gè)?Pod)匈辱、匹配?Pod?標(biāo)簽的選擇器、創(chuàng)建?pod?的模板杀迹、存 儲(chǔ)卷申請(qǐng)模板亡脸,第二個(gè)?spec?是?spec.template.spec:主要用于?Pod?里的容器屬性等配置。?.spec.template?里的內(nèi)容是聲明?Pod?對(duì)象時(shí)要定義的各種屬性,所以這部分也叫做?PodTemplate(Pod?模板)浅碾。還有一個(gè)值得注意的地方是:在.spec.selector?中定義的標(biāo)簽選擇 器必須能夠匹配到?spec.template.metadata.labels?里定義的?Pod?標(biāo)簽大州,否則?Kubernetes?將 不允許創(chuàng)建?statefulset。


使用Statefulset 部署?web


vim class-web.yaml

apiVersion: storage.k8s.io/v1

kind: StorageClass

metadata:

? name: nfs-web

provisioner: example.com/nfs ? ? ? #對(duì)應(yīng)供應(yīng)商的存儲(chǔ)類(lèi)名字及穗。env?下 nfs-deployment.yaml

kubectl apply -f class-web.yaml

kubectl get storageclass

NAME? ? ? PROVISIONER? ? ? RECLAIMPOLICY? VOLUMEBINDINGMODE? ALLOWVOLUMEEXPANSION? AGE

nfs? ? ? example.com/nfs? Delete? ? ? ? ? Immediate? ? ? ? ? false? ? ? ? ? ? ? ? ? 22h

nfs-web? example.com/nfs? Delete? ? ? ? ? Immediate? ? ? ? ? false? ? ? ? ? ? ? ? ? 6m47s

#編寫(xiě)一個(gè)?Statefulset?資源清單文件

cat statefulset.yaml

apiVersion: v1

kind: Service

metadata:

? name: nginx

? labels:

? ? app: nginx

spec:

? ports:

? - port: 80

? ? name: web

? clusterIP: None?#svc里面的字段type: ClusterIP/NodePort摧茴,這個(gè)是指定服務(wù)類(lèi)型的,而clusterIP:None屬于無(wú) ? ? ? ? 頭服務(wù)也是svc的一種

? selector:

? ? app: nginx

---

apiVersion: apps/v1

kind: StatefulSet

metadata:

? name: web

spec:

? selector:

? ? matchLabels:

? ? ? app: nginx

? serviceName: "nginx"

? replicas: 2

? template:

? ? metadata:

? ? labels:

? ? ? app: nginx

? ? spec:

? ? ? containers:

? ? ? - name: nginx

? ? ? ? image: nginx

? ? ? ? ports:

? ? ? ? - containerPort: 80

? ? ? ? ? name: web

? ? ? ? volumeMounts:

? ? ? ? - name: www

? ? ? ? ? mountPath: /usr/share/nginx/html

? volumeClaimTemplates:

? - metadata:

? ? ? name: www

? ? spec:

? ? ? accessModes: ["ReadWriteOnce"]

? ? ? storageClassName: "nfs-web"

? ? ? resources:

? ? ? ? requests:

? ? ? ? ? storage: 1Gi

kubectl apply -f statefulset.yaml

#查看?statefulset?是否創(chuàng)建成功

# kubectl get statefulset

#查看pod

kubectl get pods -l app=nginx


kubectl get pvc

NAME? ? ? ? ? STATUS? VOLUME? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? CAPACITY? ACCESS MODES? STORAGECLASS? AGE

www-web-0? ? Bound? ? pvc-3dc06339-e3d4-443f-a152-ec8728fe26f2? 1Gi? ? ? ? RWO? ? ? ? ? ? nfs-web? ? ? ? 18m

www-web-1? ? Bound? ? pvc-cc3e704f-09d7-4911-8687-d22ba1f28eba? 1Gi? ? ? ? RWO? ? ? ? ? ? nfs-web? ? ? ? 17m


kubectl get pv

NAME? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? CAPACITY? ACCESS MODES? RECLAIM POLICY? STATUS? ? ? CLAIM? ? ? ? ? ? ? ? STORAGECLASS? REASON? AGE

pvc-3dc06339-e3d4-443f-a152-ec8728fe26f2? 1Gi? ? ? ? RWO? ? ? ? ? ? Delete? ? ? ? ? Bound? ? ? default/www-web-0? ? nfs-web? ? ? ? ? ? ? ? 19m

pvc-cc3e704f-09d7-4911-8687-d22ba1f28eba? 1Gi? ? ? ? RWO? ? ? ? ? ? Delete? ? ? ? ? Bound? ? ? default/www-web-1? ? nfs-web

#如果更新鏡像埂陆,會(huì)自動(dòng)刪除pod苛白,然后更新

kubectl edit sts web ??

#? 查看鏡像更改

kubectl describe pods web-0



#查看?headless service

kubectl get svc -l app=nginx

#查看?pod?主機(jī)名

for i in 0 1; do kubectl exec web-$i -- sh -c 'hostname'; done

#使用?kubectl run?運(yùn)行一個(gè)提供?nslookup?命令的容器的,改命令來(lái)自于?dnsutils?包焚虱,通過(guò)對(duì)?pod?主機(jī)名執(zhí)行?nslookup购裙,可以檢查它們?cè)诩簝?nèi)部的?DNS?地址:

kubectl exec -it web-1 -- /bin/bash

root@web-1:/# apt-get update?

root@web-1:/# apt-get install dnsutils -y

root@web-1:/# nslookup web-0.nginx.default.svc.cluster.local Server: 10.96.0.10

Address: 10.96.0.10#53

Name: web-0.nginx.default.svc.cluster.local


#statefulset?創(chuàng)建的?pod?也是有?dns?記錄的

Address: 10.244.209.154 #解析的是?pod?的?ip?地址

root@web-1:/# nslookup nginx.default.svc.cluster.local Server: 10.96.0.10

Address: 10.96.0.10#53

Name: nginx.default.svc.cluster.local?#查詢(xún)?service dns,會(huì)把對(duì)應(yīng)的?pod ip?解析出來(lái)?Address: 10.244.209.139

Name: nginx.default.svc.cluster.local Address: 10.244.209.140

root@web-1:/# dig -t A nginx.default.svc.cluster.local @10.96.0.10

; <<>> DiG 9.11.5-P4-5.1+deb10u3-Debian <<>> -t A nginx.default.svc.cluster.local @10.96.0.10

;; global options: +cmd

;; Got answer:

;; WARNING: .local is reserved for Multicast DNS

;; You are currently testing what happens when an mDNS query is leaked to DNS

;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 27207

;; flags: qr aa rd; QUERY: 1, ANSWER: 2, AUTHORITY: 0, ADDITIONAL: 1

;; WARNING: recursion requested but not available


dig?的使用

dig -t A nginx.default.svc.cluster.local @10.96.0.10?格式如下:

@來(lái)指定域名服務(wù)器

A?為解析類(lèi)型 鹃栽,A?記錄

-t?指定要解析的類(lèi)型

A?記錄:

A?記錄是解析域名到?IP


資源清單詳細(xì)解讀:

apiVersion: v1躏率。 ? ?#定義?api?版本

kind: Service ? ? ? ??#定義要?jiǎng)?chuàng)建的資源:service

metadata:

? name: nginx ? ? ? ? ?#定義?service?的名字

? labels:

? ? app: nginx ? ? ? ??#service?的標(biāo)簽

spec:

? ports:

? - port: 80

? ? name: web

? clusterIP: None ? ? ??#創(chuàng)建一個(gè)沒(méi)有?ip?的?service

? selector:

? ? app: nginx ? ? ? ? ? ??#選擇擁有?app=nginx?標(biāo)簽的?pod

---

apiVersion: apps/v1

kind: StatefulSet

metadata:

? name: web

spec:

? selector:

? ? matchLabels:

? ? ? app: nginx

? serviceName: "nginx" ? ? ? ??#headless service?的名字

? replicas: 2 ? ? ? ? ? ? ? ? ? ? ?

? template: ? ? ? ? ? ? ? ? ? ? ? ? ? ?#定義?pod?的模板

? ? metadata:

? ? labels:

? ? ? app: nginx

? ? spec:

? ? ? containers:

? ? ? - name: nginx

? ? ? ? image: nginx

? ? ? ? ports:

? ? ? ? - containerPort: 80

? ? ? ? ? name: web

? ? ? ? volumeMounts:

? ? ? ? - name: www

? ? ? ? ? mountPath: /usr/share/nginx/html

? volumeClaimTemplates: ? ? ? ? ? ? ? ? ? ? ??#存儲(chǔ)卷申請(qǐng)模板

? - metadata:

? ? ? name: www

? ? spec:

? ? ? accessModes: ["ReadWriteOnce"]

? ? ? storageClassName: "nfs-web" ? ? ? ? ?#指定從哪個(gè)存儲(chǔ)類(lèi)申請(qǐng)?pv

? ? ? resources:

? ? ? ? requests:

? ? ? ? ? storage: 1Gi ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?#需要?1G?的?pvc,會(huì)自動(dòng)跟符合條件的?pv?綁定


?service?和?headless service?區(qū)別:

通過(guò)?deployment?創(chuàng)建?pod民鼓,pod?前端創(chuàng)建一個(gè)?service

cat deploy-service.yaml

apiVersion: v1

kind: Service

metadata:

? name: my-nginx

? labels:

? ? run: my-nginx

spec:

? type: ClusterIP

? selector:

? ? run: my-nginx? #選擇擁有 run=my-nginx 標(biāo)簽的 pod

? ports:

? - targetPort: 80? #pod 容器中定義的端口

? ? protocol: TCP

? ? port: 80? ? ? ? #service 的端口薇芝,暴露給 k8s 集群內(nèi)部服務(wù)訪問(wèn)

---

apiVersion: apps/v1

kind: Deployment

metadata:

? name: my-nginx

spec:

? selector:

? ? matchLabels:

? ? ? run: my-nginx

? replicas: 2

? template:

? ? metadata:

? ? ? name: nginx

? ? ? labels:

? ? ? ? ? run: my-nginx

? ? spec:

? ? ? containers:

? ? ? - name: my-nginx

? ? ? ? image: busybox

? ? ? ? ports:

? ? ? ? - containerPort: 80

? ? ? ? command:

? ? ? ? - sleep

? ? ? ? - "3600"

kubectl apply -f deploy-service.yaml

kubectl get svc -l run=my-nginx

NAME? ? ? TYPE? ? ? ? CLUSTER-IP? ? EXTERNAL-IP? PORT(S)? AGE

my-nginx? ClusterIP? 10.100.89.90? <none>? ? ? ? 80/TCP? ? 53s


kubectl exec -it web-1 -- /bin/bash root@web-1:/# nslookup my-nginx.default.svc.cluster.local Server: 10.96.0.10

Address: 10.96.0.10#53

Name: my-nginx.default.svc.cluster.local

Address: 10.100.89.90 #

解析的是?service?的?ip?地址


#Statefulset?實(shí)現(xiàn)?pod?的動(dòng)態(tài)擴(kuò)容


如果我們覺(jué)得兩個(gè)副本太少了,想要增加丰嘉,只需要修改配置文件?statefulset.yaml?里的?replicas?的值即可夯到,原來(lái)?replicas: 2,現(xiàn)在變成?replicaset: 3饮亏,修改之后耍贾,執(zhí)行如下命令更新:

kubectl apply -f statefulset.yaml

kubectl get sts

#也可以直接編輯控制器實(shí)現(xiàn)擴(kuò)容

kubectl edit sts web

#這個(gè)是我們把請(qǐng)求提交給了?apiserver,實(shí)時(shí)修改


#查看是不是變成5個(gè)了

kubectl get pods -l app=nginx

#Statefulset?實(shí)現(xiàn)?pod?的動(dòng)態(tài)縮容

如果我們覺(jué)得?4?個(gè)?Pod?副本太多了路幸,想要減少荐开,只需要修改配置文件?statefulset.yaml?里的?replicas?的值即可,把?replicaset:4?變成?replicas: 2简肴,修改之后晃听,執(zhí)行如下命令更新:

]# kubectl apply -f statefulset.yaml


#Statefulset?實(shí)現(xiàn)?pod?的更新,更新鏡像

docker load -I myapp.tar.gz ? ? ? ? 上傳到工作節(jié)點(diǎn)

kubectl edit sts web

#修改鏡像?nginx?變成- image: ikubernetes/myapp:v2砰识,修改之后保存退出

kubectl get pods -o wide -l app=nginx

?pod?已經(jīng)使用剛才更新的鏡像?ikubernetes/myapp:v2?了


k8s?配置管理中心?Configmap


什么是?Configmap?

Configmap?是?k8s?中的資源對(duì)象杂伟,用于保存非機(jī)密性的配置的,數(shù)據(jù)可以用?key/value?鍵值對(duì)的 形式保存仍翰,也可通過(guò)文件的形式保存。

Configmap?能解決哪些問(wèn)題??

我們?cè)诓渴鸱?wù)的時(shí)候观话,每個(gè)服務(wù)都有自己的配置文件予借,如果一臺(tái)服務(wù)器上部署多個(gè)服務(wù):nginx、?tomcat、apache?等灵迫,那么這些配置都存在這個(gè)節(jié)點(diǎn)上秦叛,假如一臺(tái)服務(wù)器不能滿足線上高并發(fā)的要 求,需要對(duì)服務(wù)器擴(kuò)容瀑粥,擴(kuò)容之后的服務(wù)器還是需要部署多個(gè)服務(wù):nginx挣跋、tomcat、apache狞换,新 增加的服務(wù)器上還是要管理這些服務(wù)的配置避咆,如果有一個(gè)服務(wù)出現(xiàn)問(wèn)題,需要修改配置文件修噪,每臺(tái)物 理節(jié)點(diǎn)上的配置都需要修改查库,這種方式肯定滿足不了線上大批量的配置變更要求。 所以黄琼,k8s?中引 入了?Configmap?資源對(duì)象樊销,可以當(dāng)成?volume?掛載到?pod?中,實(shí)現(xiàn)統(tǒng)一的配置管理脏款。


1围苫、Configmap?是?k8s?中的資源, 相當(dāng)于配置管理中心撤师,可以有一個(gè)或者多個(gè)?Configmap;?2剂府、Configmap?可以做成?Volume,k8s pod?啟動(dòng)之后丈氓,通過(guò)?volume?形式映射到容器內(nèi)部指定 目錄上


Configmap?應(yīng)用場(chǎng)景

1周循、使用?k8s?部署應(yīng)用,當(dāng)你將應(yīng)用配置寫(xiě)進(jìn)代碼中万俗,更新配置時(shí)也需要打包鏡像湾笛,configmap?可 以將配置信息和?docker?鏡像解耦,以便實(shí)現(xiàn)鏡像的可移植性和可復(fù)用性闰歪,因?yàn)橐粋€(gè)?configMap?其 實(shí)就是一系列配置信息的集合嚎研,可直接注入到?Pod?中給容器使用。configmap?注入方式有兩種库倘,一 種將?configMap?做為存儲(chǔ)卷临扮,一種是將?configMap?通過(guò)?env?中?configMapKeyRef?注入到容器 中。?2教翩、使用微服務(wù)架構(gòu)的話杆勇,存在多個(gè)服務(wù)共用配置的情況,如果每個(gè)服務(wù)中單獨(dú)一份配置的話饱亿,那么 更新配置就很麻煩蚜退,使用?configmap?可以友好的進(jìn)行配置共享闰靴。

2. 局限性

ConfigMap?在設(shè)計(jì)上不是用來(lái)保存大量數(shù)據(jù)的。在?ConfigMap?中保存的數(shù)據(jù)不可超過(guò)?1 MiB钻注。 如果你需要保存超出此尺寸限制的數(shù)據(jù)蚂且,可以考慮掛載存儲(chǔ)卷或者使用獨(dú)立的數(shù)據(jù)庫(kù)或者文件服務(wù)。


#把?configmap?做成?volume幅恋,掛載到?pod

cat mysql-configmap.yaml

apiVersion: v1

kind: ConfigMap

metadata:

? name: mysql

? labels:

? ? app: mysql

data:

? master.conf: |

? ? [mysqld]

? ? log-bin

? ? log_bin_trust_function_creators=1

? ? lower_case_table_names=1

? slave.cnf: |

? ? [mysqld]

? ? super-read-only

? ? log_bin_trust_function_creators=1

kubectl apply -f mysql-configmap.yaml


cat mysql-pod-volume.yaml

apiVersion: v1

kind: Pod

metadata:

? name: mysql-pod-volume

spec:

? containers:

? - name: mysql

? ? image: busybox

? ? command: ["bin/sh","-c","sleep 3600"]

? ? volumeMounts:

? ? - name: mysql-config

? ? ? mountPath: /tmp/config

? volumes:

? - name: mysql-config

? ? configMap:

? ? ? name: mysql

? restartPolicy: Never

kubectl apply -f mysql-pod-volume.yaml

kubectl exec -it mysql-pod-volume -- /bin/sh

/ # cd /tmp/config/

/tmp/config # ls

master.conf? slave.cnf

/tmp/config # vi master.conf


serviceaccount?與?rbac


1杏死、ServiceAccount

kubernetes?中賬戶(hù)區(qū)分為:User Accounts(用戶(hù)賬戶(hù)) 和?Service Accounts(服務(wù)賬戶(hù)) 兩種:

UserAccount?是給?kubernetes?集群外部用戶(hù)使用的,例如運(yùn)維或者集群管理人員捆交,K8s?上的用戶(hù) 賬戶(hù)?useraccount淑翼,kubeadm?安裝的?k8s,默認(rèn)用戶(hù)賬號(hào)是?kubernetes-admin;


k8s?客戶(hù)端(一般用:kubectl) ------>API Server

APIServer?需要對(duì)客戶(hù)端做認(rèn)證零渐,默認(rèn)使用工具安裝的?K8s窒舟,會(huì)在用戶(hù)家目錄下創(chuàng)建一個(gè)認(rèn)證配置 文件?.kube/config?這里面保存了客戶(hù)端訪問(wèn)?API Server?的密鑰相關(guān)信息,這樣當(dāng)用?kubectl?訪問(wèn)?k8s?時(shí)诵盼,它就會(huì)自動(dòng)讀取該配置文件惠豺,向?API Server?發(fā)起認(rèn)證,然后完成操作請(qǐng)求风宁。


?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末洁墙,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子戒财,更是在濱河造成了極大的恐慌热监,老刑警劉巖,帶你破解...
    沈念sama閱讀 207,113評(píng)論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件饮寞,死亡現(xiàn)場(chǎng)離奇詭異孝扛,居然都是意外死亡,警方通過(guò)查閱死者的電腦和手機(jī)幽崩,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,644評(píng)論 2 381
  • 文/潘曉璐 我一進(jìn)店門(mén)苦始,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái),“玉大人慌申,你說(shuō)我怎么就攤上這事陌选。” “怎么了蹄溉?”我有些...
    開(kāi)封第一講書(shū)人閱讀 153,340評(píng)論 0 344
  • 文/不壞的土叔 我叫張陵咨油,是天一觀的道長(zhǎng)。 經(jīng)常有香客問(wèn)我柒爵,道長(zhǎng)役电,這世上最難降的妖魔是什么? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 55,449評(píng)論 1 279
  • 正文 為了忘掉前任棉胀,我火速辦了婚禮法瑟,結(jié)果婚禮上囱晴,老公的妹妹穿的比我還像新娘。我一直安慰自己瓢谢,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 64,445評(píng)論 5 374
  • 文/花漫 我一把揭開(kāi)白布驮瞧。 她就那樣靜靜地躺著氓扛,像睡著了一般。 火紅的嫁衣襯著肌膚如雪论笔。 梳的紋絲不亂的頭發(fā)上采郎,一...
    開(kāi)封第一講書(shū)人閱讀 49,166評(píng)論 1 284
  • 那天,我揣著相機(jī)與錄音狂魔,去河邊找鬼蒜埋。 笑死,一個(gè)胖子當(dāng)著我的面吹牛最楷,可吹牛的內(nèi)容都是我干的整份。 我是一名探鬼主播,決...
    沈念sama閱讀 38,442評(píng)論 3 401
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼籽孙,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼烈评!你這毒婦竟也來(lái)了?” 一聲冷哼從身側(cè)響起犯建,我...
    開(kāi)封第一講書(shū)人閱讀 37,105評(píng)論 0 261
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤讲冠,失蹤者是張志新(化名)和其女友劉穎,沒(méi)想到半個(gè)月后适瓦,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體竿开,經(jīng)...
    沈念sama閱讀 43,601評(píng)論 1 300
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,066評(píng)論 2 325
  • 正文 我和宋清朗相戀三年玻熙,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了否彩。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 38,161評(píng)論 1 334
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡揭芍,死狀恐怖胳搞,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情称杨,我是刑警寧澤肌毅,帶...
    沈念sama閱讀 33,792評(píng)論 4 323
  • 正文 年R本政府宣布,位于F島的核電站姑原,受9級(jí)特大地震影響悬而,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜锭汛,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,351評(píng)論 3 307
  • 文/蒙蒙 一笨奠、第九天 我趴在偏房一處隱蔽的房頂上張望袭蝗。 院中可真熱鬧,春花似錦般婆、人聲如沸到腥。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 30,352評(píng)論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)乡范。三九已至,卻和暖如春啤咽,著一層夾襖步出監(jiān)牢的瞬間晋辆,已是汗流浹背。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 31,584評(píng)論 1 261
  • 我被黑心中介騙來(lái)泰國(guó)打工宇整, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留瓶佳,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 45,618評(píng)論 2 355
  • 正文 我出身青樓鳞青,卻偏偏與公主長(zhǎng)得像霸饲,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子盼玄,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 42,916評(píng)論 2 344

推薦閱讀更多精彩內(nèi)容