資源配置YML運行kubernetes的相關容器(一)

運行nginx的容器

/usr/local/kubernetes/yaml內,創建nginx-deployment.yml,內容如下:

apiVersion: apps/v1
kind: Deployment
metadata:
  # pods的相關名字
  name: nginx2-app
spec:
  selector:
    matchLabels:
      # 類似於一個標識
      app: nginx3
  # 運行2個容器
  replicas: 2
  template:
    metadata:
      labels:
        # 需要與上述的標識對應
        app: nginx3
    spec:
      containers:
        # pods內容器的名字的組成部分
      - name: nginx5
        image: nginx
        ports:
        # 指定容器開放的端口
        - containerPort: 80
  • kubectl create -f nginx-deployment.yml來將其運行
  • kubectl delete -f nginx-deployment.yml來將其停止

發佈Service,將端口暴露

/usr/local/kubernetes/yaml內,創建nginx-service.yml,內容如下:

apiVersion: v1
kind: Service
metadata:
  # service 的名字
  name: nginx-http
spec:
  ports:
      # service 的端口
    - port: 80
      # pods容器內的端口,也就是service的端口指向容器內的端口
      targetPort: 80
      # 外部訪問的端口
      nodePort: 80
  # ClusterIP, NodePort, LoadBalancer
  type: LoadBalancer
  selector:
    # 需要與上述deployment文件中的標識對應
    app: nginx3
  • kubectl create -f nginx-service.yml來將其運行
  • kubectl delete -f nginx-service.yml來將其停止

注意:
The Service “nginx-http” is invalid: spec.ports[0].nodePort: Invalid value: 80: provided port is not in the valid range. The range of valid ports is 30000-32767
Kubernetes 服務的 NodePort 默認端口範圍是 30000-32767,在某些場合下,這個限制不太適用,我們可以自定義它的端口範圍,操作步驟如下:

vim /etc/kubernetes/manifests/kube-apiserver.yaml

  1 apiVersion: v1
  2 kind: Pod
  3 metadata:
  4   creationTimestamp: null
  5   labels:
  6     component: kube-apiserver
  7     tier: control-plane
  8   name: kube-apiserver
  9   namespace: kube-system
 10 spec:
 11   containers:
 12   - command:
 13     - kube-apiserver
 14     # 在這裏增加配置即可(增加下面一句)
 15     - --service-node-port-range=2-65535
 16     - --advertise-address=192.168.10.150
 17     - --allow-privileged=true
      ‘’‘’‘’‘’

修改完成後,使用 docker ps 命令找到 kube-apiserver 容器,再使用 docker restart <ApiServer 容器 ID> 即可生效。(默認情況,一旦修改了配置文件,它也會自己重啓)。


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章