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