日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > linux >内容正文

linux

入门K8s:一键脚本搭建Linux服务器集群

發布時間:2023/12/4 linux 39 豆豆
生活随笔 收集整理的這篇文章主要介紹了 入门K8s:一键脚本搭建Linux服务器集群 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

前言

好久沒有寫系列博客了,本文主要是對網上文章的總結篇,主要是將安裝和運行代碼做了一次真機實驗,親測可用。文章內包含的腳本和代碼,多來自于網絡,也有我自己的調整和配置,文章末尾對參考的文獻做了列舉,方便大家參考。

過程很簡單,一路next往下看和操作即可,文章不對腳本和代碼做原理解釋,某些注意點加了紅色標注,部分腳本有注釋,可以自行參考,以后有機會可以視頻講解。

核心步驟

因為是next的方式,所以本章節主要是操作步驟,步驟中涉及到的代碼或者腳本,可以在下文中找到,比如:附錄代碼一、附錄代碼二等等,因為腳本實在太長,不太方便放到步驟里。

1、配置 node01 主節點(2個文件)

在root目錄下拷貝k8s腳本(附錄代碼一:kubernetes_node01.sh)和flannel網絡(附錄代碼二:kube-flannel.yml)的文件;

然后給腳本文件賦權限:chmod +x kubernetes_node01.sh

最后執行腳本:./kubernetes_node01.sh

ps:1、sh腳本中,需要配置節點,是內網的。

2、多個節點之間要保證能ping通;

3、中間可能需要自己來配合做些操作,比如輸入:y,來做確認等等。

最后,可以在當前文件夾下,看到一個key.txt的文件,里邊有安裝的結果數據或者密鑰等,可查看附錄代碼三:key.txt,這是我安裝的結果,里邊有join主節點的配置語句。

查看所有的nodes和pods:

[root@node01 ~]# kubectl get nodes NAME STATUS ROLES AGE VERSION node01???Ready????master???26h???v1.18.0

所有的pods:

[root@node01 ~]# kubectl get pods -A NAMESPACE NAME READY STATUS RESTARTS AGE kube-system coredns-7ff77c879f-6m6fl 1/1 Running 0 25m kube-system coredns-7ff77c879f-dkd56 1/1 Running 0 25m kube-system etcd-node01 1/1 Running 0 26m kube-system kube-apiserver-node01 1/1 Running 0 26m kube-system kube-controller-manager-node01 1/1 Running 0 26m kube-system kube-flannel-ds-amd64-sdv2h 1/1 Running 0 25m kube-system kube-proxy-vgf4r 1/1 Running 0 25m kube-system kube-scheduler-node01 1/1 Running 0 26m

?如果都啟動,都READY了,表示安裝成功。

?

2、配置dashboard儀表盤(2個文件)

上面安裝好了kubectl、kubeadm、kubelet后,我們可以通過客戶端來連接,這里安利下k8s的客戶端:Lens,很香。

如果不用客戶端,那就需要安裝儀表盤了。

1、Linux根目錄拷貝文件,附錄代碼四:recommended.yaml(安裝看板),附錄代碼五:dashboard-svc-account.yaml(配置管理員賬戶)

2、執行命令:

sed -i '/targetPort: 8443/a\ \ \ \ \ \ nodePort: 30001\n\ \ type: NodePort' recommended.yaml

3、啟動儀表盤服務:

kubectl apply -f recommended.yaml

4、啟動配置賬戶:

kubectl apply -f dashboard-svc-account.yaml

?

都成功后,會生成一個token字符串,用來登錄web端的令牌的,如果沒有拷貝或者丟失了也不怕,可以使用命令查看:

kubectl describe secrets -n kube-system `kubectl get secret -n kube-system | grep admin | awk '{print $1}'` | grep '^token'|awk '{print $2}'

?token就是類似這種:

eyJhbGciOiJSUzI1NiIsImtpZCI6Ikl5SE00cXFZR1V2cWstQURVcGlUOGk4cTBY ekZMV0VmNDEwRy14UTd1d2sifQ.eyJpc3MiOiJrdWJlcm5ldGVzL3NlcnZpY2VhY2N vdW50Iiwia3ViZXJuZXRlcy5pby9zZXJ2aWNlYWNjb3VudC9uYW1lc3BhY2UiOiJrd WJlLXN5c3RlbSIsImt1YmVybmV0ZXMuaW8vc2VydmljZWFjY291bnQvc2VjcmV0Lm5 hbWUiOiJkYXNoYm9hcmQtYWRtaW4tdG9rZW4tY3JnejYiLCJrdWJlcm5ldGVzLmlvL 3NlcnZpY2VhY2NvdW50L3NlcnZpY2UtYWNjb3VudC5uYW1lIjoiZGFzaGJvYXJkLWF kbWliwia3ViZXJuZXRlcy5pby9zZXJ2aWNlYWNjb3VudC9zZXJ2aWNlLWFjY291bnQ udWlkIjoiMjYwMGQ0ZjctM2ZhOS00ODIwLWFmMmUtZTJlZDMxYWMyYWFhIiwic3ViI joic3lzdGVtOnNlcnZpY2VhY2NvdW50Omt1YmUtc3lzdGVtOmRhc2hib2FyZC1hZG1 pbiJ9.BBtdG-S2kHEwRbWIAf6DiUgC3ILUOStPATyWfvxcQs5VJBtLRyMGqQ-AfkUo VLuhZdUv-CGoEJ1OYA00M6MwoehDdkhLFbXF7Xx1IPyhFTHxZ_oXHBPyjEREkTEera rZnvgt0ufU4g_Eqn91jdHet73itz-0abgmLMPkRl5YYjlh36Ivwq9IjKgujLwTNisU FckLuHOscHtQIrjIvAZlWTRh_awMsDHvemAKG_YIjMbyQnXi6VfN3rTW869DA0XAGO F2t7cWBtMmHvmLxVYqpOauUzwXXeYbO9eP0_d9JtVwKv6R0Q7sexRFZ-iTdZBOJDuj FI3UT2jsqgVdbagA

?

這里再檢查下:

查看所有的nodes和pods:

[root@node01 ~]# kubectl get pods -A NAMESPACE NAME READY STATUS RESTARTS AGE kube-system coredns-7ff77c879f-6m6fl 1/1 Running 0 25m kube-system coredns-7ff77c879f-dkd56 1/1 Running 0 25m kube-system etcd-node01 1/1 Running 0 26m kube-system kube-apiserver-node01 1/1 Running 0 26m kube-system kube-controller-manager-node01 1/1 Running 0 26m kube-system kube-flannel-ds-amd64-sdv2h 1/1 Running 0 25m kube-system kube-proxy-vgf4r 1/1 Running 0 25m kube-system kube-scheduler-node01 1/1 Running 0 26m kubernetes-dashboard dashboard-metrics-scraper-78f5d9f487-ldswx 1/1 Running 0 12m kubernetes-dashboard kubernetes-dashboard-577bd97bc-szvwt 1/1 Running 0 12m

?多了kubernetes-dashboard命名空間下的兩個pod。

?

?

3、配置 node02 子節點(1個文件)

如果你沒有多余的服務器,也可以在master節點做自己的pod的,需要開啟下,命令將 master 標記為可調度:

sudo kubectl taint nodes --all node-role.kubernetes.io/masteflr-

?

如果要配置多個子節點,那就仿照主節點來繼續寫sh腳本吧(附錄代碼六:kubernetes_node02.sh),步驟和主節點一致:

1、拷貝到子節點服務器;

2、賦權限,執行文件:./kubernetes_node02.sh

3、這里不用flannel配置;

4、安裝完成后,可以join到主節點,配置文件在主節點的key.txt文件里,如果你安裝成功了的話;

kubeadm join 172.17.10.4:6443 --token q3uu1o.4rdfkcyzxjhawvk1 \--discovery-token-ca-cert-hash sha256:a755d8f56733ba8f9d1951298b200202fce7b84389954bf7a38558fa6ce2a9c9

?

如果一切正常,可以去主節點查看所有的nodes:

NAME STATUS ROLES AGE VERSION node01 Ready master 26h v1.18.0 node02 Ready <none> 25h v1.18.0

表示我們的子節點已經配置完成。

?

?

4、配置ASP.Net Core服務

這里的Deployment+Service的寫法比較簡單,直接貼出來,就不做過多的解釋了。

apiVersion: apps/v1 kind: Deployment metadata:labels:app: laozhang-op2name: laozhang-op2 spec:selector:matchLabels:app: laozhang-op2replicas: 2template:metadata:labels:app: laozhang-op2spec:containers:- name: laozhang-op2image: laozhangisphi/apkimg315imagePullPolicy: IfNotPresent #pull鏡像時機,---- apiVersion: v1 kind: Service metadata:name: laozhang-op2 spec:type: NodePortports:- name: defaultprotocol: TCPport: 80targetPort: 80nodePort: 30099 selector:app: laozhang-op2

?但是這種是nodePort的方式,平時使用更多的是Ingress的方式,那使用ingress,就先需要配置ingress的服務。

?

5、配置Ingress-nginx(1個文件)

在根目錄拷貝文件,附錄代碼七:mandatory.yaml,配置Ingress-Nginx服務,

這里需要注意下,如果服務器之前已經配置過nginx,需要在mandatory.yaml文件中,修改http-port輸出端口,詳細內容見下面的代碼,有注釋。

直接執行yaml:

kubectl apply -f mandatory.yaml

?

如果沒有報錯,可以查看所有的pods:

[root@node01 ~]# kubectl get pods -A NAMESPACE NAME READY STATUS RESTARTS AGE default laozhang-op2-5cf487b57f-pdvfg 1/1 Running 0 4h29m default laozhang-op2-5cf487b57f-vtgwc 1/1 Running 0 4h29m ingress-nginx nginx-ingress-controller-557475687f-rfl98 1/1 Running 0 122m kube-system coredns-7ff77c879f-gj4sl 1/1 Running 0 26h kube-system coredns-7ff77c879f-mqp2q 1/1 Running 0 26h kube-system etcd-node01 1/1 Running 0 26h kube-system kube-apiserver-node01 1/1 Running 0 26h kube-system kube-controller-manager-node01 1/1 Running 0 26h kube-system kube-flannel-ds-amd64-nmnj2 1/1 Running 0 26h kube-system kube-proxy-wcjb8 1/1 Running 0 26h kube-system kube-scheduler-node01 1/1 Running 2 26h kubernetes-dashboard dashboard-metrics-scraper-78f5d9f487-qp2fw 1/1 Running 0 26h kubernetes-dashboard kubernetes-dashboard-577bd97bc-2tsj7 1/1 Running 0 26h

?如果和上面一樣,那恭喜,一切配置就完成了。

?

?

附錄代碼一:kubernetes_node01.sh

#!/bin/bash ############## ##主節點## ################## 第一部分,環境初始化 #### #k8s版本 version=v1.18.0 kubelet=kubelet-1.18.0-0.x86_64 kubeadm=kubeadm-1.18.0-0.x86_64 kubectl=kubectl-1.18.0-0.x86_64 #集群加入方式 key=/root/key.txt #部署flannel網絡 flannel=/root/kube-flannel.yml #安裝必要依賴 yum -y install vim wget git cmake make gcc gcc-c++ net-tools lrzsz#### 第二部分,節點配置 #### #主機解析,免密登錄 #內網ip,配置多節點,也可以不配置,后期通過join的方式 node01=172.21.10.4 #node02=192.168.10.7 #node03=192.168.1.30 hostnamectl set-hostname node01 echo '172.21.10.4 node01 #192.168.10.7 node02 #192.168.1.30 node03' >> /etc/hosts ssh-keygen ssh-copy-id -i $node01 #ssh-copy-id -i $node02 #ssh-copy-id -i $node03 #scp /etc/hosts node02:/etc/hosts #scp /etc/hosts node03:/etc/hosts #關閉防火墻 systemctl stop firewalld systemctl disable firewalld #swap分區關閉 swapoff -a sed -i 's/.*swap.*/#&/' /etc/fstab #關閉沙盒 setenforce 0 sed -i "s/^SELINUX=enforcing/SELINUX=disabled/g" /etc/sysconfig/selinux sed -i "s/^SELINUX=enforcing/SELINUX=disabled/g" /etc/selinux/config sed -i "s/^SELINUX=permissive/SELINUX=disabled/g" /etc/sysconfig/selinux sed -i "s/^SELINUX=permissive/SELINUX=disabled/g" /etc/selinux/config #打開ipv6 modprobe br_netfilter modprobe ip_vs_rr cat <<EOF > /etc/sysctl.d/k8s.conf net.bridge.bridge-nf-call-ip6tables = 1 net.bridge.bridge-nf-call-iptables = 1 vm.swappiness = 0 EOF sysctl -p /etc/sysctl.d/k8s.conf ls /proc/sys/net/bridge#### 第三部分,參數/源處理 #### #安裝epel源 yum install -y epel-release yum install -y yum-utils device-mapper-persistent-data lvm2 net-tools conntrack-tools wget vim ntpdate libseccomp libtool-ltdl #時區校準 systemctl enable ntpdate.service echo '*/30 * * * * /usr/sbin/ntpdate time7.aliyun.com >/dev/null 2>&1' > /tmp/crontab2.tmp crontab /tmp/crontab2.tmp systemctl start ntpdate.service #添加參數 echo "* soft nofile 65536" >> /etc/security/limits.conf echo "* hard nofile 65536" >> /etc/security/limits.conf echo "* soft nproc 65536" >> /etc/security/limits.conf echo "* hard nproc 65536" >> /etc/security/limits.conf echo "* soft memlock unlimited" >> /etc/security/limits.conf echo "* hard memlock unlimited" >> /etc/security/limits.conf #添加kubernetes的epel源 echo '[kubernetes] name=Kubernetes baseurl=https://mirrors.aliyun.com/kubernetes/yum/repos/kubernetes-el7-x86_64/ enabled=1 gpgcheck=1 repo_gpgcheck=1 gpgkey=https://mirrors.aliyun.com/kubernetes/yum/doc/yum-key.gpg https://mirrors.aliyun.com/kubernetes/yum/doc/rpm-package-key.gpg' > /etc/yum.repos.d/kubernetes.repo #下載 sudo yum-config-manager \--add-repo \https://mirrors.ustc.edu.cn/docker-ce/linux/centos/docker-ce.repo yum makecache fast#### 第四部分,開始安裝 #### yum -y install docker-ce yum install --enablerepo="kubernetes" $kubelet $kubeadm $kubectl systemctl enable kubelet.service && systemctl start kubelet.service systemctl start docker.service && systemctl enable docker.service #安裝tab快捷鍵 yum -y install bash-completion && source /usr/share/bash-completion/bash_completion && source <(kubectl completion bash) && echo "source <(kubectl completion bash)" >> ~/.bashrc #創建集群 kubeadm init --apiserver-advertise-address $node01 --image-repository registry.aliyuncs.com/google_containers --kubernetes-version $version --pod-network-cidr=10.244.0.0/16 >> $key 2>&1 export KUBECONFIG=/etc/kubernetes/admin.conf mkdir -p $HOME/.kube sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config sudo chown $(id -u):$(id -g) $HOME/.kube/config docker pull quay.io/coreos/flannel:v0.12.0-amd64 kubectl apply -f $flannel echo '請手動查看$key文件的密鑰將其他節點接入集群'

?

?

附錄代碼二:kube-flannel.yml

############## ##flannel網絡## ############## --- apiVersion: policy/v1beta1 kind: PodSecurityPolicy metadata:name: psp.flannel.unprivilegedannotations:seccomp.security.alpha.kubernetes.io/allowedProfileNames: docker/defaultseccomp.security.alpha.kubernetes.io/defaultProfileName: docker/defaultapparmor.security.beta.kubernetes.io/allowedProfileNames: runtime/defaultapparmor.security.beta.kubernetes.io/defaultProfileName: runtime/default spec:privileged: falsevolumes:- configMap- secret- emptyDir- hostPathallowedHostPaths:- pathPrefix: "/etc/cni/net.d"- pathPrefix: "/etc/kube-flannel"- pathPrefix: "/run/flannel"readOnlyRootFilesystem: false# Users and groupsrunAsUser:rule: RunAsAnysupplementalGroups:rule: RunAsAnyfsGroup:rule: RunAsAny# Privilege EscalationallowPrivilegeEscalation: falsedefaultAllowPrivilegeEscalation: false# CapabilitiesallowedCapabilities: ['NET_ADMIN']defaultAddCapabilities: []requiredDropCapabilities: []# Host namespaceshostPID: falsehostIPC: falsehostNetwork: truehostPorts:- min: 0max: 65535# SELinuxseLinux:# SELinux is unused in CaaSPrule: 'RunAsAny' --- kind: ClusterRole apiVersion: rbac.authorization.k8s.io/v1beta1 metadata:name: flannel rules:- apiGroups: ['extensions']resources: ['podsecuritypolicies']verbs: ['use']resourceNames: ['psp.flannel.unprivileged']- apiGroups:- ""resources:- podsverbs:- get- apiGroups:- ""resources:- nodesverbs:- list- watch- apiGroups:- ""resources:- nodes/statusverbs:- patch --- kind: ClusterRoleBinding apiVersion: rbac.authorization.k8s.io/v1beta1 metadata:name: flannel roleRef:apiGroup: rbac.authorization.k8s.iokind: ClusterRolename: flannel subjects: - kind: ServiceAccountname: flannelnamespace: kube-system --- apiVersion: v1 kind: ServiceAccount metadata:name: flannelnamespace: kube-system --- kind: ConfigMap apiVersion: v1 metadata:name: kube-flannel-cfgnamespace: kube-systemlabels:tier: nodeapp: flannel data:cni-conf.json: |{"name": "cbr0","cniVersion": "0.3.1","plugins": [{"type": "flannel","delegate": {"hairpinMode": true,"isDefaultGateway": true}},{"type": "portmap","capabilities": {"portMappings": true}}]}net-conf.json: |{"Network": "10.244.0.0/16","Backend": {"Type": "vxlan"}} --- apiVersion: apps/v1 kind: DaemonSet metadata:name: kube-flannel-ds-amd64namespace: kube-systemlabels:tier: nodeapp: flannel spec:selector:matchLabels:app: flanneltemplate:metadata:labels:tier: nodeapp: flannelspec:affinity:nodeAffinity:requiredDuringSchedulingIgnoredDuringExecution:nodeSelectorTerms:- matchExpressions:- key: kubernetes.io/osoperator: Invalues:- linux- key: kubernetes.io/archoperator: Invalues:- amd64hostNetwork: truetolerations:- operator: Existseffect: NoScheduleserviceAccountName: flannelinitContainers:- name: install-cniimage: quay.io/coreos/flannel:v0.12.0-amd64command:- cpargs:- -f- /etc/kube-flannel/cni-conf.json- /etc/cni/net.d/10-flannel.conflistvolumeMounts:- name: cnimountPath: /etc/cni/net.d- name: flannel-cfgmountPath: /etc/kube-flannel/containers:- name: kube-flannelimage: quay.io/coreos/flannel:v0.12.0-amd64command:- /opt/bin/flanneldargs:- --ip-masq- --kube-subnet-mgrresources:requests:cpu: "100m"memory: "50Mi"limits:cpu: "100m"memory: "50Mi"securityContext:privileged: falsecapabilities:add: ["NET_ADMIN"]env:- name: POD_NAMEvalueFrom:fieldRef:fieldPath: metadata.name- name: POD_NAMESPACEvalueFrom:fieldRef:fieldPath: metadata.namespacevolumeMounts:- name: runmountPath: /run/flannel- name: flannel-cfgmountPath: /etc/kube-flannel/volumes:- name: runhostPath:path: /run/flannel- name: cnihostPath:path: /etc/cni/net.d- name: flannel-cfgconfigMap:name: kube-flannel-cfg --- apiVersion: apps/v1 kind: DaemonSet metadata:name: kube-flannel-ds-arm64namespace: kube-systemlabels:tier: nodeapp: flannel spec:selector:matchLabels:app: flanneltemplate:metadata:labels:tier: nodeapp: flannelspec:affinity:nodeAffinity:requiredDuringSchedulingIgnoredDuringExecution:nodeSelectorTerms:- matchExpressions:- key: kubernetes.io/osoperator: Invalues:- linux- key: kubernetes.io/archoperator: Invalues:- arm64hostNetwork: truetolerations:- operator: Existseffect: NoScheduleserviceAccountName: flannelinitContainers:- name: install-cniimage: quay.io/coreos/flannel:v0.12.0-arm64command:- cpargs:- -f- /etc/kube-flannel/cni-conf.json- /etc/cni/net.d/10-flannel.conflistvolumeMounts:- name: cnimountPath: /etc/cni/net.d- name: flannel-cfgmountPath: /etc/kube-flannel/containers:- name: kube-flannelimage: quay.io/coreos/flannel:v0.12.0-arm64command:- /opt/bin/flanneldargs:- --ip-masq- --kube-subnet-mgrresources:requests:cpu: "100m"memory: "50Mi"limits:cpu: "100m"memory: "50Mi"securityContext:privileged: falsecapabilities:add: ["NET_ADMIN"]env:- name: POD_NAMEvalueFrom:fieldRef:fieldPath: metadata.name- name: POD_NAMESPACEvalueFrom:fieldRef:fieldPath: metadata.namespacevolumeMounts:- name: runmountPath: /run/flannel- name: flannel-cfgmountPath: /etc/kube-flannel/volumes:- name: runhostPath:path: /run/flannel- name: cnihostPath:path: /etc/cni/net.d- name: flannel-cfgconfigMap:name: kube-flannel-cfg --- apiVersion: apps/v1 kind: DaemonSet metadata:name: kube-flannel-ds-armnamespace: kube-systemlabels:tier: nodeapp: flannel spec:selector:matchLabels:app: flanneltemplate:metadata:labels:tier: nodeapp: flannelspec:affinity:nodeAffinity:requiredDuringSchedulingIgnoredDuringExecution:nodeSelectorTerms:- matchExpressions:- key: kubernetes.io/osoperator: Invalues:- linux- key: kubernetes.io/archoperator: Invalues:- armhostNetwork: truetolerations:- operator: Existseffect: NoScheduleserviceAccountName: flannelinitContainers:- name: install-cniimage: quay.io/coreos/flannel:v0.12.0-armcommand:- cpargs:- -f- /etc/kube-flannel/cni-conf.json- /etc/cni/net.d/10-flannel.conflistvolumeMounts:- name: cnimountPath: /etc/cni/net.d- name: flannel-cfgmountPath: /etc/kube-flannel/containers:- name: kube-flannelimage: quay.io/coreos/flannel:v0.12.0-armcommand:- /opt/bin/flanneldargs:- --ip-masq- --kube-subnet-mgrresources:requests:cpu: "100m"memory: "50Mi"limits:cpu: "100m"memory: "50Mi"securityContext:privileged: falsecapabilities:add: ["NET_ADMIN"]env:- name: POD_NAMEvalueFrom:fieldRef:fieldPath: metadata.name- name: POD_NAMESPACEvalueFrom:fieldRef:fieldPath: metadata.namespacevolumeMounts:- name: runmountPath: /run/flannel- name: flannel-cfgmountPath: /etc/kube-flannel/volumes:- name: runhostPath:path: /run/flannel- name: cnihostPath:path: /etc/cni/net.d- name: flannel-cfgconfigMap:name: kube-flannel-cfg --- apiVersion: apps/v1 kind: DaemonSet metadata:name: kube-flannel-ds-ppc64lenamespace: kube-systemlabels:tier: nodeapp: flannel spec:selector:matchLabels:app: flanneltemplate:metadata:labels:tier: nodeapp: flannelspec:affinity:nodeAffinity:requiredDuringSchedulingIgnoredDuringExecution:nodeSelectorTerms:- matchExpressions:- key: kubernetes.io/osoperator: Invalues:- linux- key: kubernetes.io/archoperator: Invalues:- ppc64lehostNetwork: truetolerations:- operator: Existseffect: NoScheduleserviceAccountName: flannelinitContainers:- name: install-cniimage: quay.io/coreos/flannel:v0.12.0-ppc64lecommand:- cpargs:- -f- /etc/kube-flannel/cni-conf.json- /etc/cni/net.d/10-flannel.conflistvolumeMounts:- name: cnimountPath: /etc/cni/net.d- name: flannel-cfgmountPath: /etc/kube-flannel/containers:- name: kube-flannelimage: quay.io/coreos/flannel:v0.12.0-ppc64lecommand:- /opt/bin/flanneldargs:- --ip-masq- --kube-subnet-mgrresources:requests:cpu: "100m"memory: "50Mi"limits:cpu: "100m"memory: "50Mi"securityContext:privileged: falsecapabilities:add: ["NET_ADMIN"]env:- name: POD_NAMEvalueFrom:fieldRef:fieldPath: metadata.name- name: POD_NAMESPACEvalueFrom:fieldRef:fieldPath: metadata.namespacevolumeMounts:- name: runmountPath: /run/flannel- name: flannel-cfgmountPath: /etc/kube-flannel/volumes:- name: runhostPath:path: /run/flannel- name: cnihostPath:path: /etc/cni/net.d- name: flannel-cfgconfigMap:name: kube-flannel-cfg --- apiVersion: apps/v1 kind: DaemonSet metadata:name: kube-flannel-ds-s390xnamespace: kube-systemlabels:tier: nodeapp: flannel spec:selector:matchLabels:app: flanneltemplate:metadata:labels:tier: nodeapp: flannelspec:affinity:nodeAffinity:requiredDuringSchedulingIgnoredDuringExecution:nodeSelectorTerms:- matchExpressions:- key: kubernetes.io/osoperator: Invalues:- linux- key: kubernetes.io/archoperator: Invalues:- s390xhostNetwork: truetolerations:- operator: Existseffect: NoScheduleserviceAccountName: flannelinitContainers:- name: install-cniimage: quay.io/coreos/flannel:v0.12.0-s390xcommand:- cpargs:- -f- /etc/kube-flannel/cni-conf.json- /etc/cni/net.d/10-flannel.conflistvolumeMounts:- name: cnimountPath: /etc/cni/net.d- name: flannel-cfgmountPath: /etc/kube-flannel/containers:- name: kube-flannelimage: quay.io/coreos/flannel:v0.12.0-s390xcommand:- /opt/bin/flanneldargs:- --ip-masq- --kube-subnet-mgrresources:requests:cpu: "100m"memory: "50Mi"limits:cpu: "100m"memory: "50Mi"securityContext:privileged: falsecapabilities:add: ["NET_ADMIN"]env:- name: POD_NAMEvalueFrom:fieldRef:fieldPath: metadata.name- name: POD_NAMESPACEvalueFrom:fieldRef:fieldPath: metadata.namespacevolumeMounts:- name: runmountPath: /run/flannel- name: flannel-cfgmountPath: /etc/kube-flannel/volumes:- name: runhostPath:path: /run/flannel- name: cnihostPath:path: /etc/cni/net.d- name: flannel-cfgconfigMap:name: kube-flannel-cfg

?

附錄代碼三:key.txt

W0526 16:17:20.680490 13760 configset.go:202] WARNING: kubeadm cannot validate component configs for API groups [kubelet.config.k8s.io kubeproxy.config.k8s.io] [init] Using Kubernetes version: v1.18.0 [preflight] Running pre-flight checks[WARNING IsDockerSystemdCheck]: detected "cgroupfs" as the Docker cgroup driver. The recommended driver is "systemd". Please follow the guide at https://kubernetes.io/docs/setup/cri/ [preflight] Pulling images required for setting up a Kubernetes cluster [preflight] This might take a minute or two, depending on the speed of your internet connection [preflight] You can also perform this action in beforehand using 'kubeadm config images pull' [kubelet-start] Writing kubelet environment file with flags to file "/var/lib/kubelet/kubeadm-flags.env" [kubelet-start] Writing kubelet configuration to file "/var/lib/kubelet/config.yaml" [kubelet-start] Starting the kubelet [certs] Using certificateDir folder "/etc/kubernetes/pki" [certs] Generating "ca" certificate and key [certs] Generating "apiserver" certificate and key [certs] apiserver serving cert is signed for DNS names [node01 kubernetes kubernetes.default kubernetes.default.svc kubernetes.default.svc.cluster.local] and IPs [10.96.0.1 172.17.10.4] [certs] Generating "apiserver-kubelet-client" certificate and key [certs] Generating "front-proxy-ca" certificate and key [certs] Generating "front-proxy-client" certificate and key [certs] Generating "etcd/ca" certificate and key [certs] Generating "etcd/server" certificate and key [certs] etcd/server serving cert is signed for DNS names [node01 localhost] and IPs [172.17.10.4 127.0.0.1 ::1] [certs] Generating "etcd/peer" certificate and key [certs] etcd/peer serving cert is signed for DNS names [node01 localhost] and IPs [172.17.10.4 127.0.0.1 ::1] [certs] Generating "etcd/healthcheck-client" certificate and key [certs] Generating "apiserver-etcd-client" certificate and key [certs] Generating "sa" key and public key [kubeconfig] Using kubeconfig folder "/etc/kubernetes" [kubeconfig] Writing "admin.conf" kubeconfig file [kubeconfig] Writing "kubelet.conf" kubeconfig file [kubeconfig] Writing "controller-manager.conf" kubeconfig file [kubeconfig] Writing "scheduler.conf" kubeconfig file [control-plane] Using manifest folder "/etc/kubernetes/manifests" [control-plane] Creating static Pod manifest for "kube-apiserver" [control-plane] Creating static Pod manifest for "kube-controller-manager" W0526 16:18:02.560249 13760 manifests.go:225] the default kube-apiserver authorization-mode is "Node,RBAC"; using "Node,RBAC" [control-plane] Creating static Pod manifest for "kube-scheduler" W0526 16:18:02.561130 13760 manifests.go:225] the default kube-apiserver authorization-mode is "Node,RBAC"; using "Node,RBAC" [etcd] Creating static Pod manifest for local etcd in "/etc/kubernetes/manifests" [wait-control-plane] Waiting for the kubelet to boot up the control plane as static Pods from directory "/etc/kubernetes/manifests". This can take up to 4m0s [apiclient] All control plane components are healthy after 26.504466 seconds [upload-config] Storing the configuration used in ConfigMap "kubeadm-config" in the "kube-system" Namespace [kubelet] Creating a ConfigMap "kubelet-config-1.18" in namespace kube-system with the configuration for the kubelets in the cluster [upload-certs] Skipping phase. Please see --upload-certs [mark-control-plane] Marking the node node01 as control-plane by adding the label "node-role.kubernetes.io/master=''" [mark-control-plane] Marking the node node01 as control-plane by adding the taints [node-role.kubernetes.io/master:NoSchedule] [bootstrap-token] Using token: q3uu1o.4rdfkcyzxjhawvk1 [bootstrap-token] Configuring bootstrap tokens, cluster-info ConfigMap, RBAC Roles [bootstrap-token] configured RBAC rules to allow Node Bootstrap tokens to get nodes [bootstrap-token] configured RBAC rules to allow Node Bootstrap tokens to post CSRs in order for nodes to get long term certificate credentials [bootstrap-token] configured RBAC rules to allow the csrapprover controller automatically approve CSRs from a Node Bootstrap Token [bootstrap-token] configured RBAC rules to allow certificate rotation for all node client certificates in the cluster [bootstrap-token] Creating the "cluster-info" ConfigMap in the "kube-public" namespace [kubelet-finalize] Updating "/etc/kubernetes/kubelet.conf" to point to a rotatable kubelet client certificate and key [addons] Applied essential addon: CoreDNS [addons] Applied essential addon: kube-proxyYour Kubernetes control-plane has initialized successfully!To start using your cluster, you need to run the following as a regular user:mkdir -p $HOME/.kubesudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/configsudo chown $(id -u):$(id -g) $HOME/.kube/configYou should now deploy a pod network to the cluster. Run "kubectl apply -f [podnetwork].yaml" with one of the options listed at:https://kubernetes.io/docs/concepts/cluster-administration/addons/Then you can join any number of worker nodes by running the following on each as root:kubeadm join 172.17.10.4:6443 --token q3uu1o.4rdfkcyzxjhawvk1 \--discovery-token-ca-cert-hash sha256:a755d8f56733ba8f9d1951298b200202fce7b84389954bf7a38558fa6ce2a9c9


附錄代碼四:recommended.yaml

?

# Copyright 2017 The Kubernetes Authors. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License.############## ##安裝dashboard## ##############apiVersion: v1 kind: Namespace metadata:name: kubernetes-dashboard---apiVersion: v1 kind: ServiceAccount metadata:labels:k8s-app: kubernetes-dashboardname: kubernetes-dashboardnamespace: kubernetes-dashboard---kind: Service apiVersion: v1 metadata:labels:k8s-app: kubernetes-dashboardname: kubernetes-dashboardnamespace: kubernetes-dashboard spec:ports:- port: 443targetPort: 8443selector:k8s-app: kubernetes-dashboard---apiVersion: v1 kind: Secret metadata:labels:k8s-app: kubernetes-dashboardname: kubernetes-dashboard-certsnamespace: kubernetes-dashboard type: Opaque---apiVersion: v1 kind: Secret metadata:labels:k8s-app: kubernetes-dashboardname: kubernetes-dashboard-csrfnamespace: kubernetes-dashboard type: Opaque data:csrf: ""---apiVersion: v1 kind: Secret metadata:labels:k8s-app: kubernetes-dashboardname: kubernetes-dashboard-key-holdernamespace: kubernetes-dashboard type: Opaque---kind: ConfigMap apiVersion: v1 metadata:labels:k8s-app: kubernetes-dashboardname: kubernetes-dashboard-settingsnamespace: kubernetes-dashboard---kind: Role apiVersion: rbac.authorization.k8s.io/v1 metadata:labels:k8s-app: kubernetes-dashboardname: kubernetes-dashboardnamespace: kubernetes-dashboard rules:# Allow Dashboard to get, update and delete Dashboard exclusive secrets.- apiGroups: [""]resources: ["secrets"]resourceNames: ["kubernetes-dashboard-key-holder", "kubernetes-dashboard-certs", "kubernetes-dashboard-csrf"]verbs: ["get", "update", "delete"]# Allow Dashboard to get and update 'kubernetes-dashboard-settings' config map.- apiGroups: [""]resources: ["configmaps"]resourceNames: ["kubernetes-dashboard-settings"]verbs: ["get", "update"]# Allow Dashboard to get metrics.- apiGroups: [""]resources: ["services"]resourceNames: ["heapster", "dashboard-metrics-scraper"]verbs: ["proxy"]- apiGroups: [""]resources: ["services/proxy"]resourceNames: ["heapster", "http:heapster:", "https:heapster:", "dashboard-metrics-scraper", "http:dashboard-metrics-scraper"]verbs: ["get"]---kind: ClusterRole apiVersion: rbac.authorization.k8s.io/v1 metadata:labels:k8s-app: kubernetes-dashboardname: kubernetes-dashboard rules:# Allow Metrics Scraper to get metrics from the Metrics server- apiGroups: ["metrics.k8s.io"]resources: ["pods", "nodes"]verbs: ["get", "list", "watch"]---apiVersion: rbac.authorization.k8s.io/v1 kind: RoleBinding metadata:labels:k8s-app: kubernetes-dashboardname: kubernetes-dashboardnamespace: kubernetes-dashboard roleRef:apiGroup: rbac.authorization.k8s.iokind: Rolename: kubernetes-dashboard subjects:- kind: ServiceAccountname: kubernetes-dashboardnamespace: kubernetes-dashboard---apiVersion: rbac.authorization.k8s.io/v1 kind: ClusterRoleBinding metadata:name: kubernetes-dashboard roleRef:apiGroup: rbac.authorization.k8s.iokind: ClusterRolename: kubernetes-dashboard subjects:- kind: ServiceAccountname: kubernetes-dashboardnamespace: kubernetes-dashboard---kind: Deployment apiVersion: apps/v1 metadata:labels:k8s-app: kubernetes-dashboardname: kubernetes-dashboardnamespace: kubernetes-dashboard spec:replicas: 1revisionHistoryLimit: 10selector:matchLabels:k8s-app: kubernetes-dashboardtemplate:metadata:labels:k8s-app: kubernetes-dashboardspec:containers:- name: kubernetes-dashboardimage: kubernetesui/dashboard:v2.2.0imagePullPolicy: Alwaysports:- containerPort: 8443protocol: TCPargs:- --auto-generate-certificates- --namespace=kubernetes-dashboard# Uncomment the following line to manually specify Kubernetes API server Host# If not specified, Dashboard will attempt to auto discover the API server and connect# to it. Uncomment only if the default does not work.# - --apiserver-host=http://my-address:portvolumeMounts:- name: kubernetes-dashboard-certsmountPath: /certs# Create on-disk volume to store exec logs- mountPath: /tmpname: tmp-volumelivenessProbe:httpGet:scheme: HTTPSpath: /port: 8443initialDelaySeconds: 30timeoutSeconds: 30securityContext:allowPrivilegeEscalation: falsereadOnlyRootFilesystem: truerunAsUser: 1001runAsGroup: 2001volumes:- name: kubernetes-dashboard-certssecret:secretName: kubernetes-dashboard-certs- name: tmp-volumeemptyDir: {}serviceAccountName: kubernetes-dashboardnodeSelector:"kubernetes.io/os": linux# Comment the following tolerations if Dashboard must not be deployed on mastertolerations:- key: node-role.kubernetes.io/mastereffect: NoSchedule---kind: Service apiVersion: v1 metadata:labels:k8s-app: dashboard-metrics-scrapername: dashboard-metrics-scrapernamespace: kubernetes-dashboard spec:ports:- port: 8000targetPort: 8000selector:k8s-app: dashboard-metrics-scraper---kind: Deployment apiVersion: apps/v1 metadata:labels:k8s-app: dashboard-metrics-scrapername: dashboard-metrics-scrapernamespace: kubernetes-dashboard spec:replicas: 1revisionHistoryLimit: 10selector:matchLabels:k8s-app: dashboard-metrics-scrapertemplate:metadata:labels:k8s-app: dashboard-metrics-scraperannotations:seccomp.security.alpha.kubernetes.io/pod: 'runtime/default'spec:containers:- name: dashboard-metrics-scraperimage: kubernetesui/metrics-scraper:v1.0.6ports:- containerPort: 8000protocol: TCPlivenessProbe:httpGet:scheme: HTTPpath: /port: 8000initialDelaySeconds: 30timeoutSeconds: 30volumeMounts:- mountPath: /tmpname: tmp-volumesecurityContext:allowPrivilegeEscalation: falsereadOnlyRootFilesystem: truerunAsUser: 1001runAsGroup: 2001serviceAccountName: kubernetes-dashboardnodeSelector:"kubernetes.io/os": linux# Comment the following tolerations if Dashboard must not be deployed on mastertolerations:- key: node-role.kubernetes.io/mastereffect: NoSchedulevolumes:- name: tmp-volumeemptyDir: {}

?

?

?


附錄代碼五:dashboard-svc-account.yaml

############## ##配置dashboard管理員賬號## ##############apiVersion: v1 kind: ServiceAccount metadata:name: dashboard-adminnamespace: kube-system --- apiVersion: rbac.authorization.k8s.io/v1 kind: ClusterRoleBinding metadata:name: dashboard-admin roleRef:apiGroup: rbac.authorization.k8s.iokind: ClusterRolename: cluster-admin subjects:- kind: ServiceAccountname: dashboard-adminnamespace: kube-system

?

附錄代碼六:kubernetes_node02.sh

?

#!/bin/bash ############## ##子節點## ################## 第一部分,環境初始化 #### #k8s版本 version=v1.18.0 kubelet=kubelet-1.18.0-0.x86_64 kubeadm=kubeadm-1.18.0-0.x86_64 kubectl=kubectl-1.18.0-0.x86_64#集群加入方式 key=/root/key.txt #部署flannel網絡 flannel=/root/kube-flannel.yml #安裝必要依賴 yum -y install vim wget git cmake make gcc gcc-c++ net-tools lrzsz#### 第二部分,節點配置 #### #配置節點,主機解析,免密登錄 node01=172.17.10.4 node02=172.17.10.7 # node03=192.168.1.30 hostnamectl set-hostname node02 echo '172.17.10.4 node01 172.17.10.7 node02' >> /etc/hosts ssh-keygen ssh-copy-id -i $node01 ssh-copy-id -i $node02 # ssh-copy-id -i $node03 scp /etc/hosts node02:/etc/hosts # scp /etc/hosts node03:/etc/hosts#關閉防火墻 systemctl stop firewalld systemctl disable firewalld #swap分區關閉 swapoff -a sed -i 's/.*swap.*/#&/' /etc/fstab #關閉沙盒 setenforce 0 sed -i "s/^SELINUX=enforcing/SELINUX=disabled/g" /etc/sysconfig/selinux sed -i "s/^SELINUX=enforcing/SELINUX=disabled/g" /etc/selinux/config sed -i "s/^SELINUX=permissive/SELINUX=disabled/g" /etc/sysconfig/selinux sed -i "s/^SELINUX=permissive/SELINUX=disabled/g" /etc/selinux/config #打開ipv6 modprobe br_netfilter modprobe ip_vs_rr cat <<EOF > /etc/sysctl.d/k8s.conf net.bridge.bridge-nf-call-ip6tables = 1 net.bridge.bridge-nf-call-iptables = 1 vm.swappiness = 0 EOF sysctl -p /etc/sysctl.d/k8s.conf ls /proc/sys/net/bridge#### 第三部分,參數/源處理 #### #安裝epel源 yum install -y epel-release yum install -y yum-utils device-mapper-persistent-data lvm2 net-tools conntrack-tools wget vim ntpdate libseccomp libtool-ltdl #時區校準 systemctl enable ntpdate.service echo '*/30 * * * * /usr/sbin/ntpdate time7.aliyun.com >/dev/null 2>&1' > /tmp/crontab2.tmp crontab /tmp/crontab2.tmp systemctl start ntpdate.service #添加參數 echo "* soft nofile 65536" >> /etc/security/limits.conf echo "* hard nofile 65536" >> /etc/security/limits.conf echo "* soft nproc 65536" >> /etc/security/limits.conf echo "* hard nproc 65536" >> /etc/security/limits.conf echo "* soft memlock unlimited" >> /etc/security/limits.conf echo "* hard memlock unlimited" >> /etc/security/limits.conf #添加kubernetes的epel源 echo '[kubernetes] name=Kubernetes baseurl=https://mirrors.aliyun.com/kubernetes/yum/repos/kubernetes-el7-x86_64/ enabled=1 gpgcheck=1 repo_gpgcheck=1 gpgkey=https://mirrors.aliyun.com/kubernetes/yum/doc/yum-key.gpg https://mirrors.aliyun.com/kubernetes/yum/doc/rpm-package-key.gpg' > /etc/yum.repos.d/kubernetes.repo #下載 sudo yum-config-manager \--add-repo \https://mirrors.ustc.edu.cn/docker-ce/linux/centos/docker-ce.repo yum makecache fast#### 第四部分,開始安裝 #### yum -y install docker-ce yum install --enablerepo="kubernetes" $kubelet $kubeadm $kubectl systemctl enable kubelet.service && systemctl start kubelet.service systemctl start docker.service && systemctl enable docker.service #安裝tab快捷鍵 yum -y install bash-completion && source /usr/share/bash-completion/bash_completion && source <(kubectl completion bash) && echo "source <(kubectl completion bash)" >> ~/.bashrc #創建集群 docker pull quay.io/coreos/flannel:v0.12.0-amd64 echo '請手動查看主節點$key文件的密鑰將其他節點接入集群'

?

?


附錄代碼七:mandatory.yaml

############## ##配置ingress-nginx服務## ############## apiVersion: v1 kind: Namespace metadata:name: ingress-nginxlabels:app.kubernetes.io/name: ingress-nginxapp.kubernetes.io/part-of: ingress-nginx---kind: ConfigMap apiVersion: v1 metadata:name: nginx-configurationnamespace: ingress-nginxlabels:app.kubernetes.io/name: ingress-nginxapp.kubernetes.io/part-of: ingress-nginx--- kind: ConfigMap apiVersion: v1 metadata:name: tcp-servicesnamespace: ingress-nginxlabels:app.kubernetes.io/name: ingress-nginxapp.kubernetes.io/part-of: ingress-nginx--- kind: ConfigMap apiVersion: v1 metadata:name: udp-servicesnamespace: ingress-nginxlabels:app.kubernetes.io/name: ingress-nginxapp.kubernetes.io/part-of: ingress-nginx--- apiVersion: v1 kind: ServiceAccount metadata:name: nginx-ingress-serviceaccountnamespace: ingress-nginxlabels:app.kubernetes.io/name: ingress-nginxapp.kubernetes.io/part-of: ingress-nginx--- apiVersion: rbac.authorization.k8s.io/v1beta1 kind: ClusterRole metadata:name: nginx-ingress-clusterrolelabels:app.kubernetes.io/name: ingress-nginxapp.kubernetes.io/part-of: ingress-nginx rules:- apiGroups:- ""resources:- configmaps- endpoints- nodes- pods- secretsverbs:- list- watch- apiGroups:- ""resources:- nodesverbs:- get- apiGroups:- ""resources:- servicesverbs:- get- list- watch- apiGroups:- ""resources:- eventsverbs:- create- patch- apiGroups:- "extensions"- "networking.k8s.io"resources:- ingressesverbs:- get- list- watch- apiGroups:- "extensions"- "networking.k8s.io"resources:- ingresses/statusverbs:- update--- apiVersion: rbac.authorization.k8s.io/v1beta1 kind: Role metadata:name: nginx-ingress-rolenamespace: ingress-nginxlabels:app.kubernetes.io/name: ingress-nginxapp.kubernetes.io/part-of: ingress-nginx rules:- apiGroups:- ""resources:- configmaps- pods- secrets- namespacesverbs:- get- apiGroups:- ""resources:- configmapsresourceNames:# Defaults to "<election-id>-<ingress-class>"# Here: "<ingress-controller-leader>-<nginx>"# This has to be adapted if you change either parameter# when launching the nginx-ingress-controller.- "ingress-controller-leader-nginx"verbs:- get- update- apiGroups:- ""resources:- configmapsverbs:- create- apiGroups:- ""resources:- endpointsverbs:- get--- apiVersion: rbac.authorization.k8s.io/v1beta1 kind: RoleBinding metadata:name: nginx-ingress-role-nisa-bindingnamespace: ingress-nginxlabels:app.kubernetes.io/name: ingress-nginxapp.kubernetes.io/part-of: ingress-nginx roleRef:apiGroup: rbac.authorization.k8s.iokind: Rolename: nginx-ingress-role subjects:- kind: ServiceAccountname: nginx-ingress-serviceaccountnamespace: ingress-nginx--- apiVersion: rbac.authorization.k8s.io/v1beta1 kind: ClusterRoleBinding metadata:name: nginx-ingress-clusterrole-nisa-bindinglabels:app.kubernetes.io/name: ingress-nginxapp.kubernetes.io/part-of: ingress-nginx roleRef:apiGroup: rbac.authorization.k8s.iokind: ClusterRolename: nginx-ingress-clusterrole subjects:- kind: ServiceAccountname: nginx-ingress-serviceaccountnamespace: ingress-nginx---apiVersion: apps/v1 kind: Deployment metadata:name: nginx-ingress-controllernamespace: ingress-nginxlabels:app.kubernetes.io/name: ingress-nginxapp.kubernetes.io/part-of: ingress-nginx spec:replicas: 1selector:matchLabels:app.kubernetes.io/name: ingress-nginxapp.kubernetes.io/part-of: ingress-nginxtemplate:metadata:labels:app.kubernetes.io/name: ingress-nginxapp.kubernetes.io/part-of: ingress-nginxannotations:prometheus.io/port: "10254"prometheus.io/scrape: "true"spec:hostNetwork: true # wait up to five minutes for the drain of connectionsterminationGracePeriodSeconds: 300serviceAccountName: nginx-ingress-serviceaccountnodeSelector:Ingress: nginxkubernetes.io/os: linuxcontainers:- name: nginx-ingress-controllerimage: quay.io/kubernetes-ingress-controller/nginx-ingress-controller:0.29.0args:- /nginx-ingress-controller- --configmap=$(POD_NAMESPACE)/nginx-configuration- --tcp-services-configmap=$(POD_NAMESPACE)/tcp-services- --udp-services-configmap=$(POD_NAMESPACE)/udp-services- --publish-service=$(POD_NAMESPACE)/ingress-nginx- --annotations-prefix=nginx.ingress.kubernetes.io- --http-port=8080 # 如果你的master服務器已經安裝了nginx,這里需要修改下,否則無法啟動ingress-nginx服務- --https-port=8443 # 同上securityContext:allowPrivilegeEscalation: truecapabilities:drop:- ALLadd:- NET_BIND_SERVICE# www-data -> 101runAsUser: 101env:- name: POD_NAMEvalueFrom:fieldRef:fieldPath: metadata.name- name: POD_NAMESPACEvalueFrom:fieldRef:fieldPath: metadata.namespaceports:- name: httpcontainerPort: 80protocol: TCP- name: httpscontainerPort: 443protocol: TCPlivenessProbe:failureThreshold: 3httpGet:path: /healthzport: 10254scheme: HTTPinitialDelaySeconds: 10periodSeconds: 10successThreshold: 1timeoutSeconds: 10readinessProbe:failureThreshold: 3httpGet:path: /healthzport: 10254scheme: HTTPperiodSeconds: 10successThreshold: 1timeoutSeconds: 10lifecycle:preStop:exec:command:- /wait-shutdown---apiVersion: v1 kind: LimitRange metadata:name: ingress-nginxnamespace: ingress-nginxlabels:app.kubernetes.io/name: ingress-nginxapp.kubernetes.io/part-of: ingress-nginx spec:limits:- min:memory: 90Micpu: 100mtype: Container

?

參考文獻:

https://blog.csdn.net/qq_37746855/article/details/116173976

https://blog.csdn.net/weixin_46152207/article/details/111355788

https://blog.csdn.net/catcher92/article/details/116207040

https://blog.51cto.com/u_14306186/2523096

總結

以上是生活随笔為你收集整理的入门K8s:一键脚本搭建Linux服务器集群的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

精品在线观看一区二区三区 | 中文字幕在线国产精品 | 99精品视频在线观看 | 久保带人 | 久草新在线 | 99久久精品午夜一区二区小说 | 97超碰资源 | 97超级碰碰碰视频在线观看 | 狠狠操操网| 亚洲国产中文字幕在线 | 三级黄色片子 | 欧美日韩国产一区二区三区 | 中文不卡视频在线 | 97精品一区二区三区 | 天天干夜夜干 | 六月婷操 | 日韩激情小视频 | 天天搞天天 | 性色xxxxhd| 中文字幕 第二区 | 久久综合爱 | 成人av直播 | 激情网五月婷婷 | 日韩高清免费在线 | 久草久热| 亚洲精品视频网 | 亚洲国产成人av网 | 亚洲欧美999 | a亚洲视频 | 色综合天天在线 | 中文字幕一区在线观看视频 | 亚洲日日射 | av免费网站观看 | 久久久久久久久亚洲精品 | 久久永久免费视频 | 久久久午夜影院 | 久热久草在线 | 免费成人在线观看视频 | 久草视频在线播放 | 亚洲国产视频网站 | 中文字幕免费一区二区 | 国产日韩高清在线 | 国产精品黄色影片导航在线观看 | 国产精品毛片久久久久久 | 狠狠88综合久久久久综合网 | 欧美极品在线播放 | 日韩免费网址 | 天天综合网~永久入口 | 综合久久久久久 | 免费高清国产 | 亚洲国产精品成人va在线观看 | 天天亚洲 | 99视频在线观看免费 | 婷婷5月色 | 少妇bbbb揉bbbb日本 | 伊人亚洲综合网 | 99久久婷婷国产一区二区三区 | 欧美电影在线观看 | 激情欧美网 | 日韩精品免费在线观看 | www夜夜| 一级精品视频在线观看宜春院 | 成人三级视频 | 久久婷婷久久 | a在线视频v视频 | 国产一级片观看 | 综合五月 | 麻豆国产视频 | 久草免费福利在线观看 | 一级片免费观看视频 | 欧美日韩性生活 | 四虎影视国产精品免费久久 | 香蕉视频在线免费 | 日韩在线免费高清视频 | 在线97 | 日韩欧美成 | 不卡视频国产 | 精品国产伦一区二区三区观看方式 | 中文字幕123区 | 欧美成人精品在线 | 日韩欧美在线国产 | 91精品久久久久久综合五月天 | 亚洲涩综合 | 久久免费视频5 | 一区二区三区三区在线 | 在线导航福利 | 欧美精品三级在线观看 | 91成人精品一区在线播放69 | 欧美中文字幕久久 | 最近2019好看的中文字幕免费 | 久久久久久久久久久福利 | 日韩欧三级 | 韩国中文三级 | 国产综合91 | 亚洲一级黄色大片 | 欧美成亚洲| 久久艹国产 | 日韩欧美极品 | 国产97在线播放 | 久久久久成人免费 | 中日韩欧美精彩视频 | 久久伦理| 天堂av色婷婷一区二区三区 | 日韩欧美在线综合网 | 夜夜夜精品 | 免费在线日韩 | 亚洲永久字幕 | av观看在线观看 | 国产香蕉97碰碰碰视频在线观看 | 久久免费试看 | 九九热精品视频在线观看 | 91视频三区| www.久久免费视频 | 在线观看中文字幕一区二区 | 国产一区二区三区视频在线 | 国产国产人免费人成免费视频 | 激情影音 | 亚洲女欲精品久久久久久久18 | 日韩电影一区二区三区 | 久久深夜| 亚洲第一区在线观看 | 成人黄色电影在线观看 | 一区二区三区日韩视频在线观看 | 中文字幕91| 91九色免费视频 | 国产精品黑丝在线观看 | 欧美人zozo| 久久欧美精品 | 久久国产精品影片 | www91在线| 亚洲一区二区精品3399 | 在线免费观看成人 | 日韩精品电影在线播放 | 福利视频一区二区 | 色婷婷www | 久久免费的精品国产v∧ | jizz欧美性9 国产一区高清在线观看 | 亚洲精品一区二区三区四区高清 | 黄网站色 | 999久久久久久久久 69av视频在线观看 | 黄网站色欧美视频 | 麻花豆传媒mv在线观看网站 | 97成人精品区在线播放 | 视频在线一区 | 成人毛片一区 | 中文字幕一区二区在线观看 | 91久色蝌蚪 | 日韩专区在线 | 天天色影院| 久久综合桃花 | 麻豆一区二区三区视频 | 日本 在线 视频 中文 有码 | 五月天中文字幕 | 成人h视频 | av电影不卡在线 | av免费网站观看 | 国产亚洲成人精品 | 成人黄色短片 | 在线观看一区视频 | 久草在线视频精品 | 毛片美女网站 | 日韩免费视频一区二区 | 欧美日韩a视频 | 日韩一区精品 | 亚洲午夜大片 | 亚洲美女精品视频 | 青青草久草在线 | 中文字幕国产在线 | 久久久久女人精品毛片 | 国产久视频 | 国产高清专区 | 中文字幕一区在线 | 亚洲欧洲中文日韩久久av乱码 | 在线观看国产www | 欧美亚洲国产一卡 | 亚洲黄色小说网址 | 天天操天天是 | 日日摸日日添日日躁av | 97夜夜澡人人双人人人喊 | 91av原创 | 在线免费黄色av | 最新超碰在线 | 午夜在线观看 | 久久国产精品偷 | 久久艹人人 | 国产精品视频免费观看 | 国产精品午夜久久 | 天天曰天天 | 在线激情av电影 | 日韩欧美在线中文字幕 | 黄色三几片 | 亚洲精品大片www | 国产精品69av | 91精品视频导航 | 99精品国产99久久久久久福利 | 免费看一及片 | 亚洲精品国产综合久久 | 日韩成人黄色av | 狠狠狠色丁香综合久久天下网 | 欧美国产日韩中文 | 中文在线www | 96精品在线 | 色噜噜狠狠狠狠色综合久不 | 亚洲精选视频免费看 | 色综合天天做天天爱 | 中文字幕二区在线观看 | 亚洲综合欧美激情 | 视频在线日韩 | 97超碰.com| 正在播放国产精品 | 国产在线中文字幕 | 国产一区成人 | 国产精品三级视频 | 日韩色在线观看 | 在线看的av网站 | 国产美女久久久 | 国产黄色大片 | 亚洲精品在线免费观看视频 | 97超碰精品 | 999成人网| 午夜精品99久久免费 | 色婷婷骚婷婷 | 中文字幕一区在线 | 亚洲三级国产 | 四虎伊人| 日日干日日色 | www.狠狠色| 久久情爱 | 免费看精品久久片 | 国产精品一区二区在线观看免费 | 黄色毛片大全 | 精品一区电影 | 国产精品资源在线 | 亚洲精品在线网站 | 国产日韩欧美视频在线观看 | 亚洲精品成人 | 日本高清久久久 | 欧美 亚洲 另类 激情 另类 | 欧美亚洲精品一区 | 午夜精品福利在线 | 黄色毛片视频免费 | 色婷婷天天干 | 国产日韩精品久久 | 亚洲黄色大片 | 福利视频| 免费观看国产精品视频 | 欧美日韩视频在线观看免费 | 免费中文字幕视频 | 99热亚洲精品 | 国产专区视频在线 | 免费观看高清 | 久久久亚洲国产精品麻豆综合天堂 | 国产xxxx性hd极品 | 一区 在线 影院 | 国产小视频在线免费观看视频 | 国产一区二区三区 在线 | 日韩一二三 | www91在线观看 | 色综合久久久久久久 | 色欧美88888久久久久久影院 | 在线视频 影院 | 日韩福利在线观看 | 婷婷深爱 | 天天天干天天射天天天操 | 日韩一区二区三区免费视频 | 一本色道久久综合亚洲二区三区 | 夜夜爽www| 欧美成人黄色片 | 亚洲国产精久久久久久久 | 国产精品久久久久久久毛片 | ww亚洲ww亚在线观看 | 丁香婷婷激情国产高清秒播 | 9幺看片| 国产视频亚洲精品 | 一二区精品 | 免费中午字幕无吗 | 麻豆国产视频 | 在线免费观看视频一区二区三区 | 九九99| 国产精品理论片在线播放 | 亚洲成人免费在线 | 久久视频热 | 久久久这里有精品 | 狠狠躁日日躁夜夜躁av | 在线观看视频你懂 | 99热超碰在线 | 91成人精品| 亚洲 欧洲 国产 精品 | av中文天堂在线 | 久久久黄色 | 国产黄在线看 | wwwwwww色| 一区二区精 | 偷拍福利视频一区二区三区 | 久久公开免费视频 | 成人毛片一区二区三区 | 国产成人精品一区在线 | www最近高清中文国语在线观看 | 中文字幕精品www乱入免费视频 | 天天综合成人 | 99久久99久久精品国产片果冰 | 激情综合网色播五月 | 亚洲精品免费在线视频 | 色com网| 国产在线观看你懂的 | 欧美久久久 | 日韩首页| 国内揄拍国内精品 | 欧美 国产 视频 | 久久国产精品久久精品国产演员表 | 97韩国电影| 中文字幕a在线 | 少妇搡bbbb搡bbb搡69 | 日日夜夜综合 | 97视频在线观看网址 | 黄色片免费电影 | 国产粉嫩在线观看 | 成年人视频在线免费观看 | 美女视频久久久 | 奇米网网址| 天天色综合1| 免费看高清毛片 | 国产亚洲欧美精品久久久久久 | 日韩欧美一区二区在线观看 | aaawww| 久久99久久久久久 | 手机在线黄色网址 | 午夜久久久久久久久久影院 | 深爱激情久久 | 欧美成人xxxxxxxx | 亚洲成av人影院 | 亚洲激情 | 亚洲日本国产精品 | 狠狠的操狠狠的干 | 日日夜夜天天综合 | 中文有码在线 | 国产香蕉97碰碰碰视频在线观看 | 成人黄色免费观看 | 欧美在线free | 欧美精品乱码久久久久久按摩 | 狠狠狠狠干 | av一级一片| 91精品一区二区三区蜜桃 | 国产三级精品三级在线观看 | 夜添久久精品亚洲国产精品 | 免费精品人在线二线三线 | 九色免费视频 | 久久精品99国产精品日本 | av三级在线播放 | 草莓视频在线观看免费观看 | 日韩在线一区二区免费 | 亚洲精品字幕在线 | 国产一区二区在线精品 | www.天天操 | 免费日韩视频 | 日日摸日日爽 | 国产精品99久久久久久宅男 | 久草免费福利在线观看 | av网址aaa | 亚洲精品动漫久久久久 | 久草在线免费看视频 | 免费三级av | 欧美成人黄色片 | 中文永久字幕 | 国产偷国产偷亚洲清高 | 亚洲欧美日韩一二三区 | 久草香蕉在线 | 一级久久久| 国产成人一区二区三区影院在线 | 激情偷乱人伦小说视频在线观看 | 久久国产品 | 国产亚洲精品久久久久久移动网络 | 国产一区二区免费看 | 久久狠狠婷婷 | 粉嫩av一区二区三区入口 | 天天操天天爱天天干 | 午夜精品久久久久久中宇69 | 日韩免费成人av | 欧美大片www | 日韩.com| 日韩精品一区二区三区不卡 | 日韩精品免费在线视频 | 可以免费观看的av片 | 97国产超碰在线 | 九九99靖品 | 婷婷综合久久 | 九九视频免费观看视频精品 | 久久久久久久久毛片 | 一本之道乱码区 | 日韩网站在线免费观看 | 激情自拍av | 欧美在线视频第一页 | 国产成人av在线 | 天天天天爱天天躁 | 欧美三级免费 | 色婷婷激情综合 | 日本aaaa级毛片在线看 | 91精品无人成人www | 午夜成人免费电影 | 婷婷射五月 | 天天色天天综合 | 成人免费在线播放 | 91大片网站 | 亚洲综合国产精品 | 成人一级 | 国产成人精品久久 | 久久久精品 一区二区三区 国产99视频在线观看 | 97天堂| 日韩av在线高清 | 国产一级做a | 天天色影院| 国产69久久 | 色综久久| 亚洲精品视频在线播放 | 亚洲精品国产精品国自产观看 | 美女网站免费福利视频 | 色综合亚洲精品激情狠狠 | 国产精品v欧美精品v日韩 | 丁香免费视频 | 999久久久欧美日韩黑人 | 99久久国产免费,99久久国产免费大片 | 日韩av免费一区二区 | 国产在线观看一 | 欧美综合色在线图区 | 91最新网址| 精品黄色片| 亚洲资源网 | 手机av电影在线观看 | 亚洲国产午夜 | 日本久久久久久久久 | 日韩精品欧美专区 | 99热高清| 日韩精品在线观看av | 国产一区国产二区在线观看 | 亚洲国产欧洲综合997久久, | 久久这里 | 九九九九九九精品任你躁 | 国产精品女同一区二区三区久久夜 | 亚洲精品www | av网站地址| 成人欧美一区二区三区在线观看 | 中文视频在线播放 | 免费在线观看毛片网站 | 91九色精品女同系列 | 天天色天天骑天天射 | 亚洲高清视频在线观看 | 天天综合网天天综合色 | 天天射天天色天天干 | 久久精品高清视频 | 国产精品久久久久久久久久久久午夜 | 91精品在线视频 | 日韩精品中文字幕在线不卡尤物 | 国产精品久久久久免费a∨ 欧美一级性生活片 | 久久久久久久久久久免费 | 人人射人人 | 欧美日韩视频 | 精品国产乱码久久久久久浪潮 | 91香蕉视频黄色 | 黄色一级大片免费看 | 免费观看性生活大片3 | 国产美女无遮挡永久免费 | 国产亚洲精品久久久久久电影 | 成人免费视频视频在线观看 免费 | 视频91在线 | 国产资源网 | 久久艹国产 | 国产精品久久久久婷婷 | 免费不卡中文字幕视频 | 亚洲不卡av一区二区三区 | 中文字幕在线色 | 日韩欧美第二页 | 五月婷久久 | 美女久久久久久久久久久 | 999亚洲国产996395 | 女人18片| 欧美午夜寂寞影院 | 国产小视频在线观看 | 久久精品视频网站 | 成年人黄色免费视频 | 日韩国产精品一区 | 美女国产网站 | 亚洲深爱激情 | 在线观看免费日韩 | 久久久国产毛片 | 91九色国产在线 | 在线黄色av电影 | 国产成人av福利 | 色播五月激情综合网 | 国产午夜一区二区 | 色999在线 | 天天综合天天做 | 啪啪小视频网站 | 亚洲不卡123 | 激情欧美日韩一区二区 | 国产精品久久久久久久久搜平片 | 久久精品中文 | 国内成人精品2018免费看 | 精品亚洲免费 | 亚洲精品在线一区二区三区 | 中文字幕成人 | 国产精品99久久久久久人免费 | 最近日本韩国中文字幕 | 欧美成人一二区 | 久久视频免费观看 | 久久精品日产第一区二区三区乱码 | 国产精品成人自产拍在线观看 | 国产一区二区免费 | 午夜电影 电影 | 天天操网址 | 一区 二区电影免费在线观看 | 国产一区二区三区视频在线 | 91桃色免费视频 | 精品国产乱码一区二区三区在线 | 亚洲专区 国产精品 | 97国产大学生情侣酒店的特点 | 依人成人综合网 | 国产成人精品a | 国产精品久久久久久高潮 | 亚一亚二国产专区 | 人人干人人艹 | 久久国产免费看 | 丁香资源影视免费观看 | 亚洲一区二区三区毛片 | 99久久婷婷国产 | 日韩在线观看电影 | 我要看黄色一级片 | 天天操综合网站 | 久久午夜国产 | 在线免费观看涩涩 | 中文字幕成人 | 久久精彩 | 国产色道 | 免费在线观看av网址 | 91香蕉久久 | 国产亚洲欧美日韩高清 | 在线免费av播放 | 国产黄色片一级 | 久久男人影院 | 久久久精品视频成人 | 91九色网址| 日韩精品电影在线播放 | 激情开心网站 | 国产精品婷婷午夜在线观看 | 日韩精品中文字幕在线观看 | 天堂va欧美va亚洲va老司机 | 91九色精品国产 | 国产美女视频 | 九九久久国产 | 色av网站| 成人精品99 | 精品国产一区二区三区久久久久久 | 日韩精品国产一区 | 国产精品乱码久久久 | av黄色免费在线观看 | 最近更新好看的中文字幕 | 亚洲区视频在线观看 | 成人在线免费小视频 | 国产香蕉97碰碰久久人人 | 午夜av免费观看 | 亚洲欧美偷拍另类 | 日本特黄一级 | 国产99一区视频免费 | 国产99久久久国产 | 日日摸日日碰 | 国产99免费 | 91av综合| 欧美精品国产综合久久 | 99视频这里只有 | 久久精品爱视频 | 在线视频手机国产 | 久久久久久久国产精品视频 | 最近最新中文字幕视频 | 国产aaa免费视频 | 色丁香久久| 91在线91 | 久久久免费高清视频 | 91激情 | 久久久网站 | 欧美日韩国产精品一区二区亚洲 | 亚州精品天堂中文字幕 | 色婷av | 久99久中文字幕在线 | 日日爽夜夜爽 | 日韩成人在线一区二区 | 免费在线国产 | 国产美女视频网站 | 一区二区三区播放 | 97爱爱爱 | 日韩欧美视频一区二区三区 | 99色在线观看 | 国产精品久久久久久久久久免费 | 国产涩涩网站 | 日韩av一区二区在线 | 久久久久久看片 | 插婷婷| 丁香一区二区 | 国产一区在线免费观看视频 | www看片网站| 日韩色综合 | 久久久久久久久久亚洲精品 | 一区二区三区免费在线 | 亚洲免费小视频 | 精精国产xxxx视频在线播放 | 久久tv| 国产精品免费久久久久影院仙踪林 | 欧美极品少妇xxxx | 亚洲第一区在线播放 | 国产精品美女在线 | 免费在线视频一区二区 | 亚洲国产一区二区精品专区 | 人人爽人人爽人人片av | 中文字幕五区 | 97av色| 久久久久久久久久网站 | 综合精品久久久 | 热久久免费视频精品 | 97精品国产97久久久久久久久久久久 | 综合色综合色 | 日韩精品在线免费播放 | 国产精品久久久久久久毛片 | 午夜在线日韩 | 亚洲精品国产免费 | 天天曰天天曰 | 超碰97人人干 | 亚洲精品视频网 | 亚洲精品在线二区 | 久久成人国产精品一区二区 | 久久久久福利视频 | 免费日韩一区二区三区 | 波多野结衣在线视频免费观看 | 成人黄色在线视频 | 夜夜操天天干, | 国产又粗又长的视频 | 久久激情日本aⅴ | 亚洲在线视频网站 | 国产 日韩 在线 亚洲 字幕 中文 | 午夜.dj高清免费观看视频 | www.国产视频| 亚洲 欧美 日韩 综合 | 激情综合色综合久久 | 国产欧美精品一区二区三区 | 久久99精品久久久久蜜臀 | 日韩av一区二区在线影视 | 欧美精品一级视频 | 成人在线视频免费看 | 国产精品九九九九九 | 亚洲最新毛片 | 亚洲国产精品电影 | 91尤物在线播放 | 99热最新网址 | 狠狠干美女 | 性色va| 国产91aaa | 婷婷国产一区二区三区 | 国产在线高清视频 | 色综久久 | 亚洲黄色免费电影 | 在线天堂8√ | 美女黄濒 | 欧美不卡视频在线 | 精品视频久久 | 久久天天躁夜夜躁狠狠85麻豆 | 日本资源中文字幕在线 | 国产精品一区二区久久精品爱涩 | 亚洲 成人 一区 | 日韩理论片中文字幕 | 日本精品一区二区在线观看 | 91av影视 | 99精品在线看 | 婷婷五天天在线视频 | 99亚洲精品 | 色婷婷 亚洲 | 蜜臀av夜夜澡人人爽人人桃色 | 欧美国产日韩激情 | 天天色图| 中文在线a√在线 | 久久精品视频网 | 亚洲在线a| 亚洲综合视频在线 | 一 级 黄 色 片免费看的 | 99国产在线视频 | 日韩一区二区免费播放 | 五月天综合 | 国产精品久久久久久久久搜平片 | 在线黄色国产电影 | 亚洲精品国产精品国 | 亚洲国产精品一区二区久久hs | 午夜美女视频 | 中国一级片免费看 | 久久久久免费精品视频 | 91精品国产电影 | 成年人免费看片网站 | 久久视频免费观看 | 国产福利久久 | 伊人五月天.com | 五月天婷婷在线观看视频 | 中文字幕二区 | 久久国产精品免费观看 | 国产区免费| 黄色国产精品 | 五月天激情视频在线观看 | 中文不卡视频 | 国产精品久久一卡二卡 | 中文电影网 | 91av免费观看 | 国产专区欧美专区 | 91在线播放国产 | 日韩在线观看一区二区三区 | 日韩久久片 | 91精品国产电影 | 午夜久久久久久久久久久 | 国产成人av在线影院 | 国产精品免费一区二区三区在线观看 | 精品嫩模福利一区二区蜜臀 | 亚洲人视频在线 | 91av99| 国产婷婷精品 | 日日干精品 | 亚洲精选在线观看 | 色美女在线 | 黄色免费网站下载 | 91在线视频导航 | 伊人伊成久久人综合网小说 | 午夜精品一区二区三区视频免费看 | 日韩在线免费观看视频 | 69久久夜色精品国产69 | 黄色软件在线观看视频 | 午夜精品婷婷 | 五月开心综合 | av大片网站 | 婷婷在线资源 | 亚洲精品456在线播放 | 麻豆视频免费看 | 91精品国产成 | 国产手机av在线 | 久久国产欧美日韩 | 黄色在线观看网站 | 欧美成人在线网站 | 中国成人一区 | 日韩欧美高清一区二区 | 丁香婷婷在线观看 | 成年人免费av网站 | 亚洲一区二区三区四区在线视频 | www日韩欧美| 国产一级特黄毛片在线毛片 | 免费在线观看av网址 | 久久国产99 | 欧美日韩国产一区二区三区在线观看 | 黄在线免费观看 | www亚洲精品 | 激情偷乱人伦小说视频在线观看 | 丁香综合av| 亚洲午夜久久久综合37日本 | 国产一卡二卡四卡国 | 天天色综合久久 | 欧美午夜精品久久久久 | 国产精品免费视频一区二区 | 婷婷综合亚洲 | 免费a v在线 | 日韩字幕 | 国产精品成人久久久久久久 | 免费a视频 | 亚洲dvd | 99精品在线免费 | 精品美女在线观看 | 国产精品一区在线 | 久久久久久综合网天天 | 一区二区 精品 | 色综合久久中文综合久久牛 | 久久久久成人精品免费播放动漫 | 黄免费网站 | 久久黄网站 | 九色91在线视频 | 欧美午夜a | 国产精品美女999 | 91精品视频免费 | 五月婷婷天堂 | 日韩va亚洲va欧美va久久 | 成年人视频在线免费观看 | 欧美日韩视频一区二区 | av在线最新 | 久久国产精品偷 | 免费看色的网站 | 狠狠色网 | 一区二区三区四区精品 | 天天天综合 | 免费三级影片 | 亚在线播放中文视频 | 在线观看日韩av | 91大神视频网站 | 国产精品久久久久永久免费观看 | 伊人中文在线 | 97人人爽| 久草 | 在线观看韩日电影免费 | 亚洲成人资源网 | 精品91在线| 成人黄色电影在线观看 | 免费国产一区二区 | 日韩二三区 | 成人播放器| 欧美日韩国产亚洲乱码字幕 | 婷婷精品国产一区二区三区日韩 | 久久a热6| 西西444www大胆高清图片 | 国产亚洲精品久久久久久网站 | 国产高清网站 | 人人爱人人射 | 久久免费精品一区二区三区 | 人人射人人插 | 日本黄色片一区二区 | 国产婷婷视频在线 | 中字幕视频在线永久在线观看免费 | 亚洲精品88欧美一区二区 | 在线视频亚洲 | 精品国产黄色片 | 国产拍揄自揄精品视频麻豆 | 黄色av电影在线观看 | 日韩在线一区二区免费 | 国产精品6| 91av视频| 福利视频在线看 | 一区二区三区韩国免费中文网站 | 在线播放 日韩专区 | 久久久成人精品 | 免费看一级特黄a大片 | av片在线看 | 丁香激情网 | 99热这里只有精品久久 | 日韩区欧美久久久无人区 | 免费在线观看av网址 | 日韩av一区二区在线播放 | av大片免费看 | 久久国产精品久久久久 | 综合网婷婷 | 色综合久久88色综合天天 | 国内精品久久久久久中文字幕 | 久久深夜 | 人人看人人爱 | 国内精品久久久久久久久久久久 | 久久精品艹 | 亚洲动漫在线观看 | 一区二区三区四区五区在线 | 麻豆成人精品视频 | 久久久久国产精品午夜一区 | 91日韩免费 | 久久er99热精品一区二区三区 | 久久成人免费电影 | 成人理论电影 | 亚洲欧美在线观看视频 | 黄色av免费看| 在线一区电影 | 国产精品女人久久久 | 毛片黄色一级 | 国产精品久久久久av免费 | 国产成人精品日本亚洲999 | 国产精品久久久久久久久久新婚 | 久草在线久草在线2 | 天天插视频 | 久久国产精品久久久久 | 精品资源在线 | 日本少妇视频 | 久久国产精品精品国产色婷婷 | 成年人视频免费在线播放 | 午夜骚影 | 摸阴视频 | 探花视频免费在线观看 | 在线日韩亚洲 | 一区二区日韩av | av成人免费观看 | 天天射天天艹 | 亚洲三级黄色 | 中文字幕在线观看一区 | 国产福利在线 | 久久久综合电影 | 亚洲黄色成人av | 国产精品 中文字幕 亚洲 欧美 | 在线观看国产v片 | 成人亚洲免费 | 17婷婷久久www| 欧美精品在线观看 | 成人欧美一区二区三区黑人麻豆 | 国产精品日韩久久久久 | 亚洲成a人片77777kkkk1在线观看 | 99精品视频免费看 | 精品影院 | 婷婷日 | 精品国产三级a∨在线欧美 免费一级片在线观看 | 国产婷婷 | 亚洲人成影院在线 | 香蕉久久国产 | 日韩一区二区在线免费观看 | 五月天丁香 | 日韩大陆欧美高清视频区 | 日韩精品一区二 | 日韩欧美一区二区在线播放 | 91精品国产91p65| 超碰97免费在线 | 91视频首页 | 欧美久久电影 | 中文字幕 婷婷 | 五月丁色 | 国产精品av久久久久久无 | 精品uu| 欧美精品久久久久久久久久白贞 | 婷婷伊人五月天 | 91av视频在线免费观看 | 久久伊人精品一区二区三区 | 国产理论一区二区三区 | 麻花天美星空视频 | 99精品色 | 久久精品视频2 | 99 久久久久 | 成 人 a v天堂 | 天天做天天干 | 337p西西人体大胆瓣开下部 | 玖玖在线播放 | 亚洲欧美日韩一二三区 | 高清av免费看 | 人人网av | 欧美激情xxxx性bbbb | 日本韩国中文字幕 | 欧美日韩另类在线观看 | 九九久久视频 | 精品国产乱码一区二区三区在线 | 91精品毛片 | 天天爱天天舔 | 国产高清精品在线 | 色 免费观看 | 欧美精品三级在线观看 | 日韩成人中文字幕 | 久久久久久久久久久影院 | 精品一区二区免费视频 | 一级做a爱片性色毛片www | 天天操天天干天天综合网 | 国产精品免费观看久久 | 久久婷婷色 | 在线看成人av | 国产精品一区二区麻豆 | 国产91对白在线 | 超碰97av在线 | 99 视频 高清 | 欧美影院久久 | 97超碰人人| 超碰在线亚洲 | 亚洲一级久久 | 91网页版免费观看 | 97日日| 国产精品男女视频 | 成人一级影视 | 免费网址你懂的 | 天天干,天天射,天天操,天天摸 | 极品美女被弄高潮视频网站 | 99久久er热在这里只有精品66 | av九九九| 久久九九国产视频 | 久久国产精品视频免费看 | av在线网站大全 | 精品一区二区视频 | 黄色在线观看免费网站 | 亚洲精品久久久蜜臀下载官网 | 又黄又爽又刺激 | 最近2019年日本中文免费字幕 | 人人澡人人添人人爽一区二区 | 午夜视频福利 | 开心激情婷婷 | 国产1区2区| 亚洲免费a | 久久精品视频在线免费观看 | 日韩免费在线观看视频 | 操操操综合 | 久久电影中文字幕视频 | 天天操天天吃 | 麻豆综合网 | 97精品在线| 久久久久成人精品 | 天天综合色| 国产亚洲欧美日韩高清 | 国内丰满少妇猛烈精品播放 | 午夜视频亚洲 | 欧美性生爱 | 国产精品第二十页 | 亚洲四虎在线 | 免费观看国产精品视频 | 精品一区二区综合 | 国产伦理一区二区三区 | 在线观看深夜福利 | 五月激情久久久 | 色综合天天色综合 | 中文字幕一区二区三区视频 | 国产玖玖在线 | 久久精品99精品国产香蕉 | 国产精久久久久久久 | 91视频中文字幕 | 亚洲作爱视频 | 亚洲精品乱码久久久久v最新版 | 国产永久网站 | 久久精品国产亚洲精品 |