前言:前幾天有粉絲問(wèn)我,,網(wǎng)上java面試題總是參差不齊,希望我為他整理一套全面的java面試題,,并且這套java面試題有個(gè)要求,必須能夠讓他20天就能看完這些面試題,,他說(shuō)現(xiàn)在很多面試題我看都得看3個(gè)月才能看完,然后我才能去找工作,,但是自己得時(shí)間有限所以想讓我?guī)退偨Y(jié)一套萬(wàn)能面試java求職筆記。接下來(lái)我將會(huì)至少分為12個(gè)章節(jié)進(jìn)行闡述這套Java求職筆記,,感興趣的可以堅(jiān)持看完,!覺(jué)得不錯(cuò)的可以點(diǎn)個(gè)贊,。 1為什么寫(xiě)這套Java求職筆記 很早的時(shí)候我就想寫(xiě)一些Java求職方向的一些文章,由于很長(zhǎng)時(shí)間耽擱了加上,,有粉絲后臺(tái)問(wèn)我,可不可以幫他總結(jié)一些java求職筆記,,他看了很多Java技術(shù)有很多技術(shù),,很迷茫不知道學(xué)哪些,我笑著說(shuō),,不要著急,,無(wú)論你到什么時(shí)候你都會(huì)迷茫,,因?yàn)榧夹g(shù)一直在更新,,謝謝你信任我,,解救你的迷茫唯一辦法就是多看LRyab博客,就是這樣我?guī)е劢z的問(wèn)題,,開(kāi)始編寫(xiě)了這套Java求職筆記,,看完這套求職筆記,,我相信很多人都會(huì)找到屬于自己的心儀工作,。 2K8s容器云集群拓展技術(shù)大綱圖3K8s容器云集群拓展技術(shù)k8s是什么,,K8s是管理容器狀態(tài)的一款容器治理軟件,集群中啟動(dòng)的容器全部跑在了K8s的集群節(jié)點(diǎn)上,,如果其中一個(gè)節(jié)點(diǎn)掛了另外一個(gè)就會(huì)自動(dòng)啟動(dòng)。 3.1K8s集群環(huán)境搭建準(zhǔn)備4臺(tái)虛擬主機(jī) 安裝docker環(huán)境 檢查docker安裝 準(zhǔn)備K8s環(huán)境工具:Rancher+Docker 使用Docker工具安裝rancher 檢測(cè)rancher是否安裝成功 啟動(dòng)訪問(wèn)rancher 添加K8s節(jié)點(diǎn) 配置節(jié)點(diǎn)服務(wù)器 3.2K8s集群部署jenkins容器鏡像3.3K8s部署tomcat鏡像應(yīng)用1,、準(zhǔn)備tomcat鏡像 2、編寫(xiě)部署tomcat鏡像的yaml編寫(xiě) vim k8s-tomcat7.yamlapiVersion: apps/v1beta2 #當(dāng)前配置格式版本kind: Deployment #創(chuàng)建資源類(lèi)型 metadata: #資源元數(shù)據(jù),,name是必須項(xiàng) name: tomcat7-deployment namespace: kube-system spec: #資源規(guī)格說(shuō)明 replicas: 1 #副本數(shù)量 selector: matchLabels: k8s-app: web-tomcat7 template: #定義pod模板 metadata: #pod元數(shù)據(jù),至少一個(gè)label labels: k8s-app: web-tomcat7 spec: #pod規(guī)格說(shuō)明 containers: - name: tomcat7 image: java8tomcat7:1.0 ports: - containerPort: 8080 apiVersion: v1 kind: Service metadata: name: web-tomcat7 namespace: kube-system spec: ports: - port: 8099 targetPort: 8080 nodePort: 30899 #瀏覽器訪問(wèn)的端口 selector: k8s-app: web-tomcat7 type: NodePort 3啟動(dòng)部署k8s 運(yùn)行:kubectl apply -f k8s-tomcat7.yaml 刪除:kubectl delete -f k8s-tomcat7.yaml 查看所有節(jié)點(diǎn):kubectl get pods --all-namespaces -o wide 查看某個(gè)節(jié)點(diǎn)的情況:kubectl description tomcat7-deployment-87f87c9ff-mks5t get pods 3.4k8s yaml文件詳解apiVersion: v1 #必選,,版本號(hào),例如v1kind: Pod #必選,,Pod metadata: #必選,,元數(shù)據(jù) name: string #必選,Pod名稱(chēng) namespace: string #必選,,Pod所屬的命名空間 labels: #自定義標(biāo)簽 - name: string #自定義標(biāo)簽名字 annotations: #自定義注釋列表 - name: string spec: #必選,Pod中容器的詳細(xì)定義 containers: #必選,,Pod中容器列表 - name: string #必選,,容器名稱(chēng) image: string #必選,容器的鏡像名稱(chēng) imagePullPolicy: [Always | Never | IfNotPresent] #獲取鏡像的策略 Alawys表示下載鏡像 IfnotPresent表示優(yōu)先使用本地鏡像,,否則下載鏡像,Nerver表示僅使用本地鏡像 command: [string] #容器的啟動(dòng)命令列表,,如不指定,,使用打包時(shí)使用的啟動(dòng)命令 args: [string] #容器的啟動(dòng)命令參數(shù)列表 workingDir: string #容器的工作目錄 volumeMounts: #掛載到容器內(nèi)部的存儲(chǔ)卷配置 - name: string #引用pod定義的共享存儲(chǔ)卷的名稱(chēng),,需用volumes[]部分定義的的卷名 mountPath: string #存儲(chǔ)卷在容器內(nèi)mount的絕對(duì)路徑,,應(yīng)少于512字符 readOnly: boolean #是否為只讀模式 ports: #需要暴露的端口庫(kù)號(hào)列表 - name: string #端口號(hào)名稱(chēng) containerPort: int #容器需要監(jiān)聽(tīng)的端口號(hào) hostPort: int #容器所在主機(jī)需要監(jiān)聽(tīng)的端口號(hào),,默認(rèn)與Container相同 protocol: string #端口協(xié)議,支持TCP和UDP,,默認(rèn)TCP env: #容器運(yùn)行前需設(shè)置的環(huán)境變量列表 - name: string #環(huán)境變量名稱(chēng) value: string #環(huán)境變量的值 resources: #資源限制和請(qǐng)求的設(shè)置 limits: #資源限制的設(shè)置 cpu: string #Cpu的限制,,單位為core數(shù),,將用于docker run --cpu-shares參數(shù) memory: string #內(nèi)存限制,單位可以為Mib/Gib,,將用于docker run --memory參數(shù) requests: #資源請(qǐng)求的設(shè)置 cpu: string #Cpu請(qǐng)求,,容器啟動(dòng)的初始可用數(shù)量 memory: string #內(nèi)存清楚,容器啟動(dòng)的初始可用數(shù)量 livenessProbe: #對(duì)Pod內(nèi)個(gè)容器健康檢查的設(shè)置,,當(dāng)探測(cè)無(wú)響應(yīng)幾次后將自動(dòng)重啟該容器,,檢查方法有exec、httpGet和tcpSocket,,對(duì)一個(gè)容器只需設(shè)置其中一種方法即可 exec: #對(duì)Pod容器內(nèi)檢查方式設(shè)置為exec方式 command: [string] #exec方式需要制定的命令或腳本 httpGet: #對(duì)Pod內(nèi)個(gè)容器健康檢查方法設(shè)置為HttpGet,,需要制定Path,、port path: string port: number host: string scheme: string HttpHeaders: - name: string value: string tcpSocket: #對(duì)Pod內(nèi)個(gè)容器健康檢查方式設(shè)置為tcpSocket方式 port: number initialDelaySeconds: 0 #容器啟動(dòng)完成后首次探測(cè)的時(shí)間,,單位為秒 timeoutSeconds: 0 #對(duì)容器健康檢查探測(cè)等待響應(yīng)的超時(shí)時(shí)間,,單位秒,默認(rèn)1秒 periodSeconds: 0 #對(duì)容器監(jiān)控檢查的定期探測(cè)時(shí)間設(shè)置,,單位秒,,默認(rèn)10秒一次 successThreshold: 0 failureThreshold: 0 securityContext: privileged:false restartPolicy: [Always | Never | OnFailure]#Pod的重啟策略,Always表示一旦不管以何種方式終止運(yùn)行,,kubelet都將重啟,,OnFailure表示只有Pod以非0退出碼退出才重啟,Nerver表示不再重啟該P(yáng)od nodeSelector: obeject #設(shè)置NodeSelector表示將該P(yáng)od調(diào)度到包含這個(gè)label的node上,,以key:value的格式指定 imagePullSecrets: #Pull鏡像時(shí)使用的secret名稱(chēng),以key:secretkey格式指定 - name: string hostNetwork:false #是否使用主機(jī)網(wǎng)絡(luò)模式,,默認(rèn)為false,,如果設(shè)置為true,表示使用宿主機(jī)網(wǎng)絡(luò) volumes: #在該pod上定義共享存儲(chǔ)卷列表 - name: string #共享存儲(chǔ)卷名稱(chēng) (volumes類(lèi)型有很多種) emptyDir: {} #類(lèi)型為emtyDir的存儲(chǔ)卷,,與Pod同生命周期的一個(gè)臨時(shí)目錄。為空值 hostPath: string #類(lèi)型為hostPath的存儲(chǔ)卷,,表示掛載Pod所在宿主機(jī)的目錄 path: string #Pod所在宿主機(jī)的目錄,將被用于同期中mount的目錄 secret: #類(lèi)型為secret的存儲(chǔ)卷,,掛載集群與定義的secre對(duì)象到容器內(nèi)部 scretname: string items: - key: string path: string configMap: #類(lèi)型為configMap的存儲(chǔ)卷,掛載預(yù)定義的configMap對(duì)象到容器內(nèi)部 name: string items: - key: string 3.5K8s常用命令1創(chuàng)建資源對(duì)象根據(jù)yaml配置文件創(chuàng)建資源對(duì)象:kubectl create -f ***.yaml 2查看資源對(duì)象 查看資源版本標(biāo)簽:kubectl api-versions 查看集群狀態(tài):kubectl get cs 查看集群節(jié)點(diǎn)信息:kubectl get nodes 查看所有Pod列表:kubectl get pods 查看deployment:kubectl get deploy 查看端口映射:kubectl get svc 查看指定命名空間的服務(wù):kubectl get svc -n kubectl-system 顯示運(yùn)行中的Pod,、Service、Deployment以及ReplicaSet的關(guān)鍵信息:kubectl get all 查看所有的命名空間:kubectl get all --all-namespace 3描述資源對(duì)象 顯示Node的詳細(xì)信息:kubectl describe nodes <node-name> 顯示Pod的詳細(xì)信息:kubectl describe pods <pod-name> 顯示由RC管理的Pod的信息:kubectl describe pods <rc-name> 4刪除資源對(duì)象 基于pod.yaml定義的名稱(chēng)刪除Pod:kubectl delete -f pod.yaml 刪除所有Pod:kubectl delete pods --all 于刪除名稱(chēng)為my_pod的Pod:kubectl delete pod my_pod 5執(zhí)行容器命令 執(zhí)行Pod的date命令:kubectl exec <pod-name> date 指定Pod中某個(gè)容器執(zhí)行date命令:kubectl exec <pod-name> -c <container-name> date 通過(guò)bash進(jìn)入容器:kubectl exec -it <pod-name> -c <container-name> /bin/bash kubectl exec -it container-name /bin/bash 6查看容器日志 查看容器輸出到stdout的日志:kubectl logs <pod-name> 跟蹤查看容器的日志,,相當(dāng)于tail -f命令的結(jié)果:kubectl logs -f <pod-name> -c 4個(gè)人說(shuō)明 |
|
來(lái)自: LRyab博客網(wǎng) > 《面試簡(jiǎn)歷》