赞
踩
节点IP | 角色 | 备注 |
---|---|---|
192.168.100.30 | Master | Kubernetes 集群 master 节点、Harbor 仓库节点 |
192.168.100.31 | Worker | Kubernetes 集群 node 节点 |
ps:为方便部署,建议保持所有节点密码一致,完成后再统一修改节点密码。
完成服务器部署后进入服务器,编辑/etc/sysconfig/network-scripts/ifcfg-ens33文件
vi /etc/sysconfig/network-scripts/ifcfg-ens33
Master
TYPE=Ethernet PROXY_METHOD=none BROWSER_ONLY=no BOOTPROTO=static DEFROUTE=yes IPV4_FAILURE_FATAL=no IPV6INIT=yes IPV6_AUTOCONF=yes IPV6_DEFROUTE=yes IPV6_FAILURE_FATAL=no IPV6_ADDR_GEN_MODE=stable-privacy NAME=ens33 DEVICE=ens33 ONBOOT=yes IPADDR=192.168.100.30 PREFIX=24 GATEWAY=192.168.100.1
Worker
TYPE=Ethernet PROXY_METHOD=none BROWSER_ONLY=no BOOTPROTO=static DEFROUTE=yes IPV4_FAILURE_FATAL=no IPV6INIT=yes IPV6_AUTOCONF=yes IPV6_DEFROUTE=yes IPV6_FAILURE_FATAL=no IPV6_ADDR_GEN_MODE=stable-privacy NAME=ens33 DEVICE=ens33 ONBOOT=yes IPADDR=192.168.100.31 PREFIX=24 GATEWAY=192.168.100.1
完成编辑后重启 network 服务
systemctl restart network
ip a (查看网卡信息是否修改成功)
Master
Worker
之后将镜像文件通过SecureFX传输到Master root目录下,进行挂载。
mount -o loop chinaskills_cloud_paas_v2.0.2.iso /mnt/ (挂载镜像到/mnt/目录下)
cp -rvf /mnt/* /opt/ (将内容复制到/opt/目录下)
umount /mnt/ (解除挂载)
在 master 节点安装 kubeeasy 工具:
mv /opt/kubeeasy /usr/bin/kubeeasy
此步骤主要完成 docker-ce、git、unzip、vim、wget 等工具的安装。
在 master 节点执行以下命令完成依赖包的安装:
kubeeasy install depend --host 192.168.100.30,192.168.100.31 --user root --password 000000 --offline-file /opt/dependencies/base-rpms.tar.gz
--host:所有主机节点 IP,如:10.24.1.2-10.24.1.10,中间用“-”隔开,表示 10.24.1.2到 10.24.1.10 范围内的所有 IP。若 IP 地址不连续,则列出所有节点 IP,用逗号隔开,如:10.24.1.2,10.24.1.7,10.24.1.9。
--user:主机登录用户,默认为 root
--password:主机登录密码,所有节点需保持密码一致。
--offline-file:离线安装包路径。
ps:可通过命令“tail -f /var/log/kubeinstall.log”查看安装详情或排查错误。
在 master 节点执行以下命令完成集群节点的连通性检测:
kubeeasy check ssh --host 192.168.100.30,192.168.100.31 --user root --password 000000
在 master 节点执行以下命令完成集群所有节点间的免密钥配置:
kubeeasy create ssh-keygen --master 192.168.100.30 --worker 192.168.100.31 --user root --password 000000
–mater 参数后跟 master 节点 IP,–worker 参数后跟所有 worker 节点 IP。
在 master 节点执行以下命令部署 Kubernetes 集群:
kubeeasy install kubernetes --master 192.168.100.30 --worker 192.168.100.31 --user root --password 000000 --version 1.22.1 --offline-file /opt/kubernetes.tar.gz
–master:Master 节点 IP。
–worker:Node 节点 IP,如有多个 Node 节点用逗号隔开。
–version:Kubernetes 版本,此处只能为 1.22.1
ps:可通过命令“tail -f /var/log/kubeinstall.log”查看安装详情或排查错误。
部署完成后查看集群状态:
kubectl cluster-info
查看节点负载情况:
kubectl top nodes --use-protocol-buffers
在浏览器上访问一道云云开发平台(http://master_IP:30080),如图所示:
设置 admin 用户的密码(000000000000),并登录平台,如图所示:
点击集群名称查看集群概览,如图所示:
在 master 节点执行以下命令安装KubeVirt:
kubeeasy add --virt kubevirt
查看 Pod:
kubectl -n kubevirt get pods
在 master 节点执行以下命令进行 Istio 服务网格环境的安装:
kubeeasy add --istio istio
查看Pod:
[root@master ~] kubectl -n istio-system get pods
NAME READY STATUS RESTARTS AGE
grafana-6ccd56f4b6-4hxgm 1/1 Running 0 2m6s
istio-egressgateway-7f4864f59c-gbrdz 1/1 Running 0 2m20s
istio-ingressgateway-55d9fb9f-d79t2 1/1 Running 0 2m20s
istiod-555d47cb65-gb6q8 1/1 Running 0 2m24s
jaeger-5d44bc5c5d-89flh 1/1 Running 0 2m5s
kiali-9f9596d69-p2rmc 1/1 Running 0 2m5s
prometheus-64fd8ccd65-gkjlw 2/2 Running 0 2m5s
查看Istio版本信息
[root@master ~] istioctl version
client version: 1.12.0
control plane version: 1.12.0
data plane version: 1.12.0 (2 proxies)
九、Istio可视化
访问 Grafana(http://master_IP:33000),如图所示:
访问 Prometheus(http://master_IP:30090),如图所示:
查看 Targets,如图所示:
访问 Jaeger(http://master_IP:30686),如图所示:
访问 Kiali(http://master_IP:20001),如图所示:
在 master 节点执行以下命令进行 Harbor 仓库的安装:
kubeeasy add --registry harbot
部署完成后查看Harbor仓库状态:
[root@master ~]# systemctl status harbor ● harbor.service - Harbor Loaded: loaded (/usr/lib/systemd/system/harbor.service; enabled; vendor preset: disabled) Active: active (running) since 三 2023-06-28 10:15:21 CST; 28s ago Docs: http://github.com/vmware/harbor Main PID: 76364 (docker-compose) Tasks: 15 Memory: 14.2M CGroup: /system.slice/harbor.service └─76364 /usr/local/bin/docker-compose -f /opt/harbor/docker-compose.yml up 6月 28 10:15:30 k8s-master-node1 docker-compose[76364]: registryctl | 172.18.0.8 - - [28/Jun/2023:02:15:30 +0000] "GET /api/health HTTP/1.1" 200 9 6月 28 10:15:30 k8s-master-node1 docker-compose[76364]: harbor-portal | 172.18.0.8 - - [28/Jun/2023:02:15:30 +0000] "GET / HTTP/1.1" 200 532 "-" "Go-http-client/1.1" 6月 28 10:15:39 k8s-master-node1 docker-compose[76364]: registryctl | 127.0.0.1 - - [28/Jun/2023:02:15:39 +0000] "GET /api/health HTTP/1.1" 200 9 6月 28 10:15:39 k8s-master-node1 docker-compose[76364]: harbor-portal | 127.0.0.1 - - [28/Jun/2023:02:15:39 +0000] "GET / HTTP/1.1" 200 1167 "-" "curl/7.78.0" 6月 28 10:15:39 k8s-master-node1 docker-compose[76364]: registry | 127.0.0.1 - - [28/Jun/2023:02:15:39 +0000] "GET / HTTP/1.1" 200 0 "" "curl/7.78.0" 6月 28 10:15:40 k8s-master-node1 docker-compose[76364]: registry | 172.18.0.8 - - [28/Jun/2023:02:15:40 +0000] "GET / HTTP/1.1" 200 0 "" "Go-http-client/1.1" 6月 28 10:15:40 k8s-master-node1 docker-compose[76364]: registryctl | 172.18.0.8 - - [28/Jun/2023:02:15:40 +0000] "GET /api/health HTTP/1.1" 200 9 6月 28 10:15:40 k8s-master-node1 docker-compose[76364]: harbor-portal | 172.18.0.8 - - [28/Jun/2023:02:15:40 +0000] "GET / HTTP/1.1" 200 532 "-" "Go-http-client/1.1" 6月 28 10:15:41 k8s-master-node1 docker-compose[76364]: harbor-portal | 172.18.0.10 - - [28/Jun/2023:02:15:41 +0000] "GET / HTTP/1.1" 200 1167 "-" "curl/7.78.0" 6月 28 10:15:41 k8s-master-node1 docker-compose[76364]: nginx | 127.0.0.1 - "GET / HTTP/1.1" 200 1167 "-" "curl/7.78.0" 0.000 0.000 .
在 Web 端通过 http://master_ip 访问 Harbor,如图所示:
使用管理员账号(admin/Harbor12345)登录 Harbor,如图所示:
若集群部署失败或出现故障,可重置集群重新部署,重置命令如下:
kubeeasy reset
重置完成后再次执行步骤三–九即可重新部署
再master节点执行以下命令安装依赖包:
kubeeasy install depend --host 192.168.100.32 --user root --password 000000 --offline-file /opt/dependencies/base-rpms.tar.gz
其中192.168.100.32为新增节点的IP地址。
在master节点执行以下命令即可加入集群:
kubeeasy add --worker 192.168.100.32 --user root --password 000000 --offline-file /opt/kubernetes.tar.gz
创建资源对象:
kubectl create -f xxx.yaml(文件)
kubectl create -f <directory>(目录下所有文件)
查看资源对象:
kubectl get nodes
kubectl get pods -n <namespace> -o wide
描述资源对象:
kubectl describe nodes <node-name>
kubectl desctibe pod <pod-name>-n<namespace>
删除资源对象:
kubectl delete -f <filename>
kubectl delete pods,services -l name=<label-name>
kubectl delete pods --all
执行容器的命令:
kubectl exec <pod-name>date(默认使用第一个容器执行Pod的date命令)
kubectl exec <pod-name> -c <container-name> date (指定Pod中的某个容器执行date命令)
kubectl exec -it <pod-name> -c <container-name> /bin/bash (相当与docker exec -it <container-name> /bin/bash)
查看容器日志:
kubectl logs <pod-name>
kubectl logs -f <pod-name> -c <container-name>(相当于tail -f 命令)
显示Pod的更多信息:
kubectl get pods -n <namespace> -o wide
以 yaml 格式显示:
kubectl get pods -n <namespace> -o yaml
以自定义列显示 Pod 信息:
kubectl get pod <pod-name> -n <namespace> -o
custom-columns=NAME:.metadata.name,"ANNOTATIONS":.metadata.annotations
基于文件的自定义列名输出:
kubectl get pods <pod-name> -o=custom-columns-file=template.txt
输出结果排序:
kubectl get pods --sort-by=.metadata.name
创建vmi:
kubectl create -f vmi.yaml
查看vmi:
kubectl get vmis
删除vmi:
kubectl delete vmis <vmi-name>
virtctl 是 KubeVirt 自带的类似于 kubectl 的命令行工具,可以直接管理虚拟机,可以控 制虚拟机的 start、stop、restart 等
启动虚拟机:
virtctl start <vmi-name>
停止虚拟机
virtctl stop <vmi-name>
重启虚拟机
virtctl restart <vmi-name>
istioctl 用于在 Istio 系统中创建、列出、修改以及删除配置资源。
可用的路由和流量管理配置类型有:virtualservice、gateway、destinationrule、serviceentry、 httpapispec、httpapispecbinding、quotaspec、quotaspecbinding、servicerole、servicerolebinding、 policy。
使用下面命令展示 istioctl 可以访问到的 Istio 配置档的名称:
istioctl profile list
显示配置档的配置信息:
istioctl profile dump demo
显示配置文件的差异:
istioctl profile diff default demo
可以使用 proxy-status 或 ps 命令概览服务网格:
istioctl proxy-status
如果输出列表中缺少某个代理则意味着它当前未连接到 Polit 实例,所以它无法接收到 任何配置。此外,如果它被标记为 stale,则意味着存在网络问题或者需要扩展 Pilot。
istioctl 允许使用 proxy-config 或者 pc 命令检索代理的配置
检索特定 Pod 中 Envoy 实例的集群配置的信息:
istioctl proxy-config cluster <pod-name> [flags]
检索特定 Pod 中 Envoy 实例的 bootstrap 配置的信息:
istioctl proxy-config bootstrap <pod-name> [flags]
检索特定 Pod 中 Envoy 实例的监听器配置的信息:
istioctl proxy-config listener <pod-name> [flags]
检索特定 Pod 中 Envoy 实例的路由配置的信息:
istioctl proxy-config route <pod-name> [flags]
检索特定 Pod 中 Envoy 实例的 endpoint 配置的信息:
istioctl proxy-config endpoints <pod-name> [flags]
查看版本信息:
helm version
查看当前安装的 Charts:
helm list
查询 Charts:
helm search <chart-name>
查看 Charts 状态:
helm status redis
删除 Charts:
helm delete --purge <chart-name>
创建 Charts:
helm create helm_charts
测试 Charts 语法:
helm lint
打包 Charts:
cd helm_charts && helm package ./
查看生成的 yaml 文件:
helm template helm_charts-xxx.tgz
[flags]
### 4.Helm工具
#### 4.1 helm常用命令
查看版本信息:
```shell
helm version
查看当前安装的 Charts:
helm list
查询 Charts:
helm search <chart-name>
查看 Charts 状态:
helm status redis
删除 Charts:
helm delete --purge <chart-name>
创建 Charts:
helm create helm_charts
测试 Charts 语法:
helm lint
打包 Charts:
cd helm_charts && helm package ./
查看生成的 yaml 文件:
helm template helm_charts-xxx.tgz
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。