# 使用kubernetes - 確認k8s是否啟動 >$ kubectl get pod -n kube-system ``` NAME READY STATUS RESTARTS AGE calico-kube-controllers-6b4c6ff56f-rl72w 1/1 Running 0 2m38s calico-node-4pm6m 1/1 Running 0 2m38s coredns-66bff467f8-49v6z 1/1 Running 0 7m35s coredns-66bff467f8-sl522 1/1 Running 0 7m35s etcd- 1/1 Running 1 7m43s kube-apiserver- 1/1 Running 1 7m43s kube-controller-manager- 1/1 Running 1 7m43s kube-proxy-22sf7 1/1 Running 1 7m35s kube-scheduler- 1/1 Running 1 7m43s ``` - 確認叢集主機狀況 >$ kubectl get nodes ``` NAME STATUS ROLES AGE VERSION mas01 Ready master 15m v1.18.5 wka01 NotReady worker 95s v1.18.5 ``` ## 常用命令 ### 命令式起pod - 起一個pod image是hazelcast/hazelcast 並給pod一個port號5701 >$ kubectl run hazelcast --image=hazelcast/hazelcast --port=5701 - -it(i=stdin=標準輸入,t=TTY=終端設備)為給pod終端機(image CMD為bash時一定要給終端機) 設定如果pod停止或是損毀時,不會自動重啟 >$ kubectl run -i -t busybox --image=busybox --restart=Never - '- -'執行default命令(image檔Entrypoint)後面接參數(arg) >$ kubectl run nginx --image=nginx -- <arg1> <arg2> ... <argN> - '- -command'為至換掉image檔的Entrypoint >命令 kubectl run nginx --image=nginx --command -- <cmd> <arg1> ... <argN> ``` 描述 Docker 字段名稱 Kubernetes 字段名稱 容器執行的命令 Entrypoint command 傳給命令的參數 Cmd args ``` ### 宣告式 - 用yaml檔建立pod >$ kubectl create -f XXX.yaml - 將檔案cat出來導入create創造pod >$ cat pod.json | kubectl create -f - - 將檔案以 -o後指定格式進行vi編輯,然後以編輯內容產生pod >$ kubectl create -f docker-registry.yaml --edit -o json ### yaml template ```yaml= #api版本 apiVersion: v1 #執行物件 kind: Pod #物件資訊 metadata: name: nna labels: dt: hdp #pod資訊 spec: hostname: nnaˋ之 subdomain: hdp #貨櫃資訊 containers: - name: nna #貨櫃使用image image: dt210.img #image是否使用最新版本Always/Never imagePullPolicy: Never #使用終端機 stdin: true tty: true #用yaml給container起用hostport功能 ports: - containerPort: 22 hostPort: 22101 command: [/bin/bash] #pod裡面資料夾位置 volumeMounts: - mountPath: "/home/bigred/nn" name: nn - mountPath: "/home/bigred/sn" name: sn - name: hdpetc mountPath: /opt/hadoop-2.10.1/etc/hadoop/ #本機要儲存的地點 volumes: - name: nn hostPath: path: /opt/nna/nn - name: sn hostPath: path: /opt/nna/sn #把configmap這個物件,變成一種volume,存放叢集設定檔 - name: hdpetc configMap: name: hdpetc #查詢dns時會新增以下domain name查詢 dnsConfig: searches: - hdp.default.svc.dt.io #選擇pod產生在哪一台叢集電腦 nodeSelector: kubernetes.io/hostname : lcs81 ```