k8s记录-3

4.3.6 Kubernetes

4.3.6.1 apiserver

docker rm kube-apiserver -f

docker run -d --net=host  --restart always --privileged=true --name kube-apiserver \
-v /root/k8s-ca:/var/run/kubernetes \
gcr.io/google_containers/hyperkube-amd64:v1.7.0  \
/hyperkube \
apiserver \
--etcd-servers=http://172.18.24.203:2379 \
--allow-privileged=true \
--profiling=true \
--apiserver-count=3 \
--insecure_bind_address=0.0.0.0 \
--insecure_port=8080 \
--bind-address=0.0.0.0 \
--secure-port=8443 \
--service-cluster-ip-range=10.2.0.0/16 \
--service-node-port-range=0-65535 \
--admission_control=ServiceAccount \
--authorization-mode=RBAC

docker logs kube-apiserver

4.3.6.2 controller

docker run -d --net=host --restart always --privileged=true --name kube-controller \
-v /root/k8s-ca:/var/run/kubernetes \
gcr.io/google_containers/hyperkube-amd64:v1.7.0 \
/hyperkube \
controller-manager \
--address=0.0.0.0 \
--master=http://172.18.24.203:8080 \
--service_account_private_key_file=/var/run/kubernetes/apiserver.key 

docker logs kube-controller

4.3.6.3 scheduler

docker run -d --net=host --restart always --privileged=true --name kube-scheduler \
gcr.io/google_containers/hyperkube-amd64:v1.7.0 \
/hyperkube \
scheduler \
--address=0.0.0.0 \
--master=http://172.18.24.203:8080

docker logs kube-scheduler

4.3.6.4 kubelet

docker rm kube-kubelet -f

docker run -d --net=host --restart always --privileged=true --name kube-kubelet \
-v /:/rootfs:ro \
-v /sys:/sys:ro \
-v /dev:/dev \
-v /var/run/docker.sock:/var/run/docker.sock \
-v /var/lib/docker/:/var/lib/docker:rw \
-v /var/lib/kubelet/:/var/lib/kubelet:rw \
-v /var/run:/var/run:rw \
gcr.io/google_containers/hyperkube-amd64:v1.7.0 \
/hyperkube \
kubelet \
--allow-privileged=true \
--api_servers=http://172.18.24.203:8080 \
--hostname_override=172.18.24.203 \
--cluster-dns=1.2.4.8 \
--cluster-domain=cluster.local

docker logs kube-kubelet

4.3.6.5 proxy

所有节点必须安装

docker run -d --net=host --restart always --privileged=true --name kube-proxy \
gcr.io/google_containers/hyperkube-amd64:v1.7.0 \
/hyperkube \
proxy \
--cluster-cidr=10.1.0.0/16 \
--master=http://172.18.24.203:8080

docker logs kube-proxy

4.3.6.6 kubectl

curl -LO https://storage.googleapis.com/kubernetes-release/release/v1.7.0/bin/linux/amd64/kubectl
cp kubectl-v1.7.0 /usr/local/bin/kubectl
chmod +x /usr/local/bin/kubectl
kubectl config set-cluster default-cluster --server=http://172.18.24.201:8080
kubectl config set-context default-system --cluster=default-cluster --user=default-admin
kubectl config use-context default-system
kubectl get nodes
NAME          STATUS     AGE
172.18.26.4   Ready      5m
172.18.26.5   Ready      5m
172.18.26.6   Ready      5m

4.3.6.7 Kubernetes-Dashboard

需要准备两个镜像:

  • gcr.io/google_containers/kubernetes-dashboard-amd64:v1.5.0
  • gcr.io/google_containers/pause-amd64:3.0

kubernetes-dashboard.yaml

# Copyright 2015 Google Inc. All Rights Reserved.
#
# 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.

# Configuration to deploy release version of the Dashboard UI.
#
# Example usage: kubectl create -f <this_file>

kind: Deployment
apiVersion: extensions/v1beta1
metadata:
  labels:
    app: kubernetes-dashboard
  name: kubernetes-dashboard
  namespace: kube-system
spec:
  replicas: 3
  selector:
    matchLabels:
      app: kubernetes-dashboard
  template:
    metadata:
      labels:
        app: kubernetes-dashboard
    spec:
      containers:
      - name: kubernetes-dashboard
        image: gcr.io/google_containers/kubernetes-dashboard-amd64:v1.6.1
        imagePullPolicy: IfNotPresent
        ports:
        - containerPort: 9090
          protocol: TCP
        args:
          # 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://172.18.26.1:8080
        livenessProbe:
          httpGet:
            path: /
            port: 9090
          initialDelaySeconds: 30
          timeoutSeconds: 30
---
kind: Service
apiVersion: v1
metadata:
  labels:
    app: kubernetes-dashboard
  name: kubernetes-dashboard
  namespace: kube-system
spec:
  type: NodePort
  ports:
  - port: 80
    targetPort: 9090
  selector:
    app: kubernetes-dashboard

然后启动该应用

kubectl create -f kubernetes-dashboard.yaml

接下来可以在浏览中查看
http://172.18.24.201:8080/ui

posted @ 2017-10-27 00:47  YoYo_Checknow  阅读(207)  评论(0编辑  收藏  举报