k8s的基本操作
命名空間
創(chuàng)建命名空間
kubectl create namespace xxx
或者
apiVersion: v1
kind: Namespace
metadata:
name: <insert-namespace-name-here>
kubectl create -f ./my-namespace.yaml
刪除命名空間
kubectl delete namespaces xxx
警告: 這會刪除名字空間下的 所有內容 嚼酝!
查詢
POD
查詢某命名空間下所有的pod
kubectl get pod -n 命名空間
集群情況
kubectl cluster-info
查詢configmap
kubectl get configmap coredns -n kube-system
kubectl get configmap coredns -n kube-system -o yaml
describe
kubectl describe pod nginx-deployment-559d658b74-6czzf -n test
endpoints
kubectl get endpoints -n test
svc
kubectl get svc -n test
刪除
delete
kubectl delete all -l app=my-app
創(chuàng)建
APPLY
kubectl apply -f xxx.yaml
CREATE
kubectl create deployment xxx --image=xxx -n=xxx
REPLACE
kubectl replace deployment xxx --image=xxx -n=xxx
兩者區(qū)別
1)kubectl create命令,是先刪除所有現(xiàn)有的東西,重新根據yaml文件生成新的。所以要求yaml文件中的配置必須是完整的
(2)kubectl create命令,用同一個yaml文件執(zhí)行替換replace命令摆马,將會不成功矩动,fail掉撑刺。
kubectl create命令可創(chuàng)建新資源屋彪。 因此,如果再次運行該命令绒尊,則會拋出錯誤畜挥,因為資源名稱在名稱空間中應該是唯一的。
kubectl apply命令將配置應用于資源婴谱。 如果資源不在那里蟹但,那么它將被創(chuàng)建。 kubectl apply命令可以第二次運行谭羔,因為它只是應用如下所示的配置华糖。 在這種情況下,配置沒有改變瘟裸。 所以客叉,pod沒有改變。
在kubectl create 话告,我們指定一個特定的動作兼搏,在這種情況下create ,因此它是必要的 沙郭。
在kubectl apply命令中佛呻,我們指定系統(tǒng)的目標狀態(tài),并且不指定特定操作病线,因此聲明性 吓著。 我們讓系統(tǒng)決定采取什么行動鲤嫡。 如果資源不在那里,它將創(chuàng)建它绑莺,如果資源在那里暖眼,那么它將配置應用于現(xiàn)有資源
簡單來說,如果在單個文件上運行操作以創(chuàng)建資源紊撕,則create和apply基本相同罢荡。 但是, apply允許您在目錄下的多個文件上同時創(chuàng)建和修補对扶。
GitHub-w140
go環(huán)境搭建
環(huán)境變量
- k8s中是獲取鏡像文件來作為編排,但是我們有很多數(shù)據庫等相關信息不能直接寫在鏡像里面,這個時候我們就可以通過k8s的yaml文件進行編排容器的時候設置環(huán)境變量
- go可以通過導入”os”包通過os包中的Getenv方法來獲取
package main
import "fmt"
import "os"
func main(){
var JAVAHOME string
JAVAHOME = os.Getenv("JAVA_HOME")
fmt.Println(JAVAHOME)
}