zzbb 发表于 2018-9-16 07:55:31

Kubernetes 集群的两种部署过程(daemon部署和容器化部署)以及glusterfs的应用!

  ClusterIp:通过VIP来访问,
  NodePort: 需要自己搭建负载据衡器
  LoadBalancer:仅仅用于特定的云提供商 和 Google Container Engine
  https://www.nginx.com/blog/load-balancing-kubernetes-services-nginx-plus/
  port:相当于服务端口(对及集群内客户访问)
  targetPort: 相当于pods端口
  nodePort; 宿主机端口(也是服务端口,只不过是对集群外客户访问)
  hostPort: 相当于docker run 中的 -p(localhost 端口)
  访问流程:
  client ——》nodePort ——》node local random Port ——》Cluster-Ip Port ——》targetPort ——》containerPort
  服务发现有两种:
  环境变量:默认支持,
  DNS:需要以插件的形式安装skyDNS
  注:
  环境变量方式存在限制:Pod必须在Service之后创建,DNS则没有这个限制
  kubenetes(ppc64le):
  0. 关闭firewalld服务器
  a. systemctl disable firewalld
  b. systemctl stop firewalld
  1. 在所有上安装at9.0:
  # yum install -y advance-toolchain-at9.0-runtime \
  advance-toolchain-at9.0-devel \
  advance-toolchain-at9.0-perf \
  advance-toolchain-at9.0-mcore-libs
  # echo "export PATH=/opt/at9.0/bin:/opt/at9.0/sbin:$PATH" >> /etc/profile.d/at9.sh
  # source /etc/profile.d/at9.sh
  # /opt/at9.0/sbin/ldconfig
  2. master节点:
  a. # git clone https://github.com/Pensu/pause.git
  # cd pause
  # make
  b. yum install kubernetes-client kubernetes-master etcd
  c. 配置/etc/kubernetes/config:
  KUBE_LOGTOSTDERR="--logtostderr=true"
  KUBE_LOG_LEVEL="--v=0"
  KUBE_ALLOW_PRIV="--allow-privileged=false"
  KUBE_MASTER="--master=http://172.16.9.158:8080"
  d. 配置/etc/kubernetes/apiserver :
  KUBE_API_ADDRESS="--insecure-bind-address=0.0.0.0"
  #KUBE_API_PORT="--port=8080"
  # KUBELET_PORT="--kubelet-port=10250"
  KUBE_ETCD_SERVERS="--etcd-servers=http://172.16.9.158:2379"
  KUBE_SERVICE_ADDRESSES="--service-cluster-ip-range=10.254.0.0/16"
  KUBE_ADMISSION_CONTROL="--admission-control=NamespaceLifecycle,NamespaceExists,LimitRanger,SecurityContextDeny,ResourceQuota"
  KUBE_API_ARGS=""
  e. 配置/etc/etcd/etcd.conf:
  ETCD_LISTEN_CLIENT_URLS="http://0.0.0.0:2379"
  ETCD_ADVERTISE_CLIENT_URLS="http://0.0.0.0:2379"
  f. 启动服务:
  # for SERVICES in kube-apiserver kube-controller-manager kube-scheduler; do
  systemctl restart $SERVICES
  systemctl enable $SERVICES
  systemctl status $SERVICES
  done
  3. 配置Minion:
  a. yum install docker-io kubernetes-client kubernetes-node
  b. 配置 /etc/kubernetes/kubelet:
  KUBELET_ADDRESS="--address=0.0.0.0"
  # KUBELET_PORT="--port=10250"
  KUBELET_HOSTNAME="--hostname-override=172.16.9.158"
  KUBELET_API_SERVER="--api-servers=http://172.16.9.158:8080"
  KUBELET_ARGS="--pod-infra-container-image=docker.repo:5000/kube/pause:0.8.0"
  c. 启动服务:
  for SERVICES in kube-proxy kubelet flanneld docker; do
  systemctl restart $SERVICES
  systemctl enable $SERVICES
  systemctl status $SERVICES
  done
  4. 应用:
  a. 编写replicationControl:
  cat > httprc.yml

beson2000 发表于 2019-1-11 21:26:44

谢谢分享
页: [1]
查看完整版本: Kubernetes 集群的两种部署过程(daemon部署和容器化部署)以及glusterfs的应用!