溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

kubernetes使用技巧有哪些

發布時間:2021-12-24 16:19:58 來源:億速云 閱讀:153 作者:小新 欄目:云計算

這篇文章主要介紹了kubernetes使用技巧有哪些,具有一定借鑒價值,感興趣的朋友可以參考下,希望大家閱讀完這篇文章之后大有收獲,下面讓小編帶著大家一起了解一下。

一:在容器中獲取 Pod 的IP

  1. apiVersion: v1

  2. kind: ReplicationController

  3. metadata:

  4.   name: world-v2

  5. spec:

  6.   replicas: 3

  7.   selector:

  8.     app: world-v2

  9.   template:

  10.     metadata:

  11.       labels:

  12.         app: world-v2

  13.     spec:

  14.       containers:

  15.       - name: service

  16.         image: test

  17.         env:

  18.         - name: POD_IP

  19.           valueFrom:

  20.             fieldRef:

  21.               fieldPath: status.podIP

  22.         ports:

  23.         - name: service

  24.           containerPort: 777

容器中可以直接使用 POD_IP 環境變量獲取容器的 IP,通過環境變量來實現,該環境變量直接引用 resource 的狀態字段。

二:在Pod中獲取宿主機的主機名、namespace等

  1. apiVersion: v1

  2. kind: Pod

  3. metadata:

  4.   name: dapi-test-pod

  5. spec:

  6.   containers:

  7.     - name: test-container

  8.       image: busybox

  9.       command: [ "/bin/sh", "-c", "env" ]

  10.       env:

  11.         - name: MY_NODE_NAME

  12.           valueFrom:

  13.             fieldRef:

  14.               fieldPath: spec.nodeName

  15.         - name: MY_POD_NAME

  16.           valueFrom:

  17.             fieldRef:

  18.               fieldPath: metadata.name

  19.         - name: MY_POD_NAMESPACE

  20.           valueFrom:

  21.             fieldRef:

  22.               fieldPath: metadata.namespace

  23.         - name: MY_POD_IP

  24.           valueFrom:

  25.             fieldRef:

  26.               fieldPath: status.podIP

  27.         - name: HOST_IP

  28.           valueFrom:

  29.            fieldRef:

  30.              fieldPath: status.hostIP

  31.         - name: MY_POD_SERVICE_ACCOUNT

  32.           valueFrom:

  33.             fieldRef:

  34.               fieldPath: spec.serviceAccountName

  35.   restartPolicy: Never

這條技巧補充了第一條獲取 podIP 的內容,方法都是一樣的,只不過列出了更多的引用字段。參考下面的 pod 定義,每個 pod 里都有一個 {.spec.nodeName} 字段,通過 fieldRef 和環境變量,就可以在Pod中獲取宿主機的主機名(訪問環境變量MY_NODE_NAME)。

三:指定容器的啟動參數

我們可以在 Pod 中為容器使用 command 為容器指定啟動參數:

  1. command: ["/bin/bash","-c","bootstrap.sh"]

使用數組的方式定義,所有命令使用跟 Dockerfile 中的 CMD 配置是一樣的,但是有一點不同的是,bootsttap.sh 必須具有可執行權限,否則容器啟動時會出錯。

四:使容器內時間與宿主機同步

我們下載的很多容器內的時區都是格林尼治時間,與北京時間差8小時,這將導致容器內的日志和文件創建時間與實際時區不符,有兩種方式解決這個問題:
1.修改鏡像中的時區配置文件
2.將宿主機的時區配置文件/etc/localtime使用volume方式掛載到容器中
第二種方式比較簡單,不需要重做鏡像,只要在應用的yaml文件中增加如下配置:

  1. volumeMounts:

  2.   - name: host-time

  3.     mountPath: /etc/localtime

  4.     readOnly: true

  5.   volumes:

  6.   - name: host-time

  7.     hostPath:

  8.       path: /etc/localtime

五:kubectl 命令補全

  1. # yum install -y bash-completion


  2. # source /usr/share/bash-completion/bash_completion


  3. # source <(kubectl completion bash)

六:創建一個CentOS測試容器

有時我們可能需要在Kubernetes集群中創建一個容器來測試集群的狀態或對其它容器進行操作,這時候我們需要一個操作節點,可以使用一個普通的CentOS容器來實現。即使用一個while循環保證容器啟動時擁有一個前臺進程。

  1. apiVersion: extensions/v1beta1

  2. kind: Deployment

  3. metadata:

  4.   name: test

  5.   labels:

  6.     app: test

  7. spec:

  8.   replicas: 1

  9.   template:

  10.     metadata:

  11.       labels:

  12.         app: test

  13.     spec:

  14.       containers:

  15.       - image: harbor-001.jimmysong.io/library/centos:7.2.1511

  16.         name: test

  17.         command: ["/bin/bash","-c","while true; do sleep 1000; done"]

  18.         imagePullPolicy: IfNotPresent

感謝你能夠認真閱讀完這篇文章,希望小編分享的“kubernetes使用技巧有哪些”這篇文章對大家有幫助,同時也希望大家多多支持億速云,關注億速云行業資訊頻道,更多相關知識等著你來學習!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

亚洲午夜精品一区二区_中文无码日韩欧免_久久香蕉精品视频_欧美主播一区二区三区美女