0%

kubernetes 搭建

kubernetes

搭建 方案一

安装 kubectl

1
2
3
4
5
6
7
curl -LO "https://dl.k8s.io/release/$(curl -L -s https://dl.k8s.io/release/stable.txt)/bin/linux/amd64/kubectl"
curl -LO "https://dl.k8s.io/$(curl -L -s https://dl.k8s.io/release/stable.txt)/bin/linux/amd64/kubectl.sha256"
echo "$(<kubectl.sha256) kubectl" | sha256sum --check

sudo install -o root -g root -m 0755 kubectl /usr/local/bin/kubectl

kubectl version --client

安装 minikube

1
2
3
4
5
6
7
8
9
10
11
12
13
14
curl -LO https://storage.googleapis.com/minikube/releases/latest/minikube-linux-amd64
sudo install minikube-linux-amd64 /usr/local/bin/minikube

minikube start

kubectl get po -A
minikube kubectl -- get po -A
alias kubectl="minikube kubectl --"
minikube dashboard

kubectl proxy --address='0.0.0.0' --port=8080 --accept-hosts='^\*$'

http://192.168.31.24:8080/api/v1/namespaces/kubernetes-dashboard/services/http:kubernetes-dashboard:/proxy/#/overview?namespace=default

创建服务 hello-minikube

1
2
3
4
5
6
7
8
9
10

kubectl create deployment hello-minikube --image=k8s.gcr.io/echoserver:1.4
kubectl expose deployment hello-minikube --type=NodePort --port=8080

kubectl get services hello-minikube

minikube service hello-minikube

kubectl port-forward service/hello-minikube 7080:8080

创建服务 balanced

1
2
3
4
5
6
7
8

kubectl create deployment balanced --image=k8s.gcr.io/echoserver:1.4
kubectl expose deployment balanced --type=LoadBalancer --port=8080

minikube tunnel

kubectl get services balanced

开放端口

1
2
3
4
5
6
7
8
9
10

port=$1

echo 'add port is : '$port

firewall-cmd --query-port=$port/tcp
firewall-cmd --add-port=$port/tcp --permanent
firewall-cmd --reload
firewall-cmd --query-port=$port/tcp

搭建 方案二 Kuboard Spray

Kuboard Spray 搭建

1
2
3
4
5
6
7
8
9
docker run -d \
--privileged \
--restart=unless-stopped \
--name=kuboard-spray \
-p 80:80/tcp \
-e TZ=Asia/Shanghai \
-v /var/run/docker.sock:/var/run/docker.sock \
-v ~/kuboard-spray-data:/data \
eipwork/kuboard-spray

在浏览器地址栏中输入 http://这台机器的 IP 地址,输入默认密码 Kuboard123

kuboard 安装 k8s 图形化管理界面

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
kubectl apply -f https://kuboard.cn/install-script/kuboard.yaml
kubectl apply -f https://addons.kuboard.cn/metrics-server/0.3.7/metrics-server.yaml

# 查看状态
kubectl get pods -l k8s.kuboard.cn/name=kuboard -n kube-system
# 结果
NAME READY STATUS RESTARTS AGE
kuboard-54c9c4f6cb-6lf88 1/1 Running 0 45s

# 获取token
echo $(kubectl -n kube-system get secret $(kubectl -n kube-system get secret | grep ^kuboard-user | awk '{print $1}') -o go-template='{{.data.token}}' | base64 -d)

eyJhbGciOiJSUzI1NiIsImtpZCI6Im45Z25UWDhma2l2bERNZDUtd1IwX3FaOVczRkJDSnVib0l6V1VLdHh3TmsifQ.eyJpc3MiOiJrdWJlcm5ldGVzL3NlcnZpY2VhY2NvdW50Iiwia3ViZXJuZXRlcy5pby9zZXJ2aWNlYWNjb3VudC9uYW1lc3BhY2UiOiJrdWJlLXN5c3RlbSIsImt1YmVybmV0ZXMuaW8vc2VydmljZWFjY291bnQvc2VjcmV0Lm5hbWUiOiJrdWJvYXJkLXVzZXItdG9rZW4tdDRjNHgiLCJrdWJlcm5ldGVzLmlvL3NlcnZpY2VhY2NvdW50L3NlcnZpY2UtYWNjb3VudC5uYW1lIjoia3Vib2FyZC11c2VyIiwia3ViZXJuZXRlcy5pby9zZXJ2aWNlYWNjb3VudC9zZXJ2aWNlLWFjY291bnQudWlkIjoiNzAyZGY0ZTktZGY4Ni00NzhkLWI2YjMtYjljZjUwMjg3NjRiIiwic3ViIjoic3lzdGVtOnNlcnZpY2VhY2NvdW50Omt1YmUtc3lzdGVtOmt1Ym9hcmQtdXNlciJ9.C5mh0Iq0bXMTjNUhYMeCD_U3Cm5Ut02M7lTGKO39GSvfQaw9l1JnqlRyfhmjOD_grq7IpCOl0RYiif6zS43nDa0_y0t3PmJUbpJU_-XbyElCz1cLu2i1V3XhHA9yzsdz4AvZGBIbyczDfBM7dAxfE6mY5sFfn5Sfj_SY6_tx18S9B9EaYAZxryByzL-3JKjV9OYeQtCoPDGIMEO6D_oJw5Tj_dY36955aO6Xg5nSDOkqadvECLWi5eVk_QYmu_oFDtHjF7hoVNuuLLIqLMOpT1khNr7JJE9BbIdFJWfuYAhctPbJgbaYm4ZNBBfuQBWBNCtBM4J-XWDkiDbeTfxc4Q

# 访问kuboard
http://任意一个Worker节点的IP地址:32567/

问题

  1. 如何访问服务?
  2. https 证书怎么解决?

参考

  1. kubernetes 官网
  2. minikube 官网
  3. 远程查看 k8s 面版
  4. kuboard-spray 教程
  5. kuboard-k8s 图形管理平台