CentOS搭建k8s集群(12)—安装kubernetes-dashboard(方式一:官方yaml文件 + NodePort)

1、版本信息
版本:kubernetes dashboard v2.0.4
地址:https://github.com/kubernetes/dashboard/releases/tag/v2.0.4
支持Kubernetes版本:1.19
使用的镜像版本:
kubernetesui/dashboard:v2.0.4
kubernetesui/metrics-scraper:v1.0.4

2、下载
cd /tmp
wget https://raw.githubusercontent.com/kubernetes/dashboard/v2.0.4/aio/deploy/recommended.yaml

将Dashboard Service改为nodePort方式
修改点1:

kind: Service
apiVersion: v1
metadata:
  labels:
    k8s-app: kubernetes-dashboard
  name: kubernetes-dashboard
  namespace: kubernetes-dashboard
spec:
  type: NodePort
  ports:
    - port: 443
      targetPort: 8443
      nodePort: 30001
  selector:
    k8s-app: kubernetes-dashboard
kubectl apply -f recommended.yaml
service服务端口443,对应pod端口8443,对外暴露端口30001

继续阅读CentOS搭建k8s集群(12)—安装kubernetes-dashboard(方式一:官方yaml文件 + NodePort)

CentOS搭建k8s集群(10)—k8s如何部署pod

一、pod控制器
pod是k8s容器的最小单位,而控制它要用k8s的控制器,k8s有好几个控制器类型,常用的是以下两个:
DaemonSet方式:后台守护进程的方式,每个节点都部署一个pod副本,适合于资源监控、日志收集等功能
Deployment方式:最常用的方式,可以动态的扩展和缩小pod的数量

二、手写yaml文件方式
1、deployment yaml文件格式
例如手写一个abc.yaml
使用安装命令:kubectl apply -f abc.yaml
abc.yaml是部署文件,描述了创建资源的模板,需要手写。可以重复使用,像代码一样管理
里面定义了资源的名称、用哪个镜像、副本数量、部署位置等信息

2、那么yaml的格式说明从哪里来
1)获取所有的资源
kubectl api-resources
2)获取deployment资源信息
kubectl explain deploy
3)获取deployment下的spec字段,格式就是:type.fieldName[.fieldName]
kubectl explain deploy.spec

继续阅读CentOS搭建k8s集群(10)—k8s如何部署pod

CentOS搭建k8s集群(9)—跨node访问不通问题

集群内部,包括master和所有node都可以通过pod ip访问pod

1、前一篇说道httpd安装在node1,但是在它安装的node1上能访问,master和node2上curl不通
curl http://10.122.1.18
curl http://10.103.242.174
node1都通
master都不通
node2都不通

2、查看路由表
ip r s

10.122.0.0/24 dev cni0 proto kernel scope link src 10.122.0.1
10.122.1.0/24 via 10.122.1.0 dev flannel.1 onlink
10.122.2.0/24 via 10.122.2.0 dev flannel.1 onlink

三台机器都有flannel网络的配置

继续阅读CentOS搭建k8s集群(9)—跨node访问不通问题

CentOS搭建k8s集群(7)—安装nginx-ingress

服务器信息
master:192.168.201.1
node1:192.168.101.2
node2:192.168.101.3

1、查找nginx-ingress
helm search repo nginx-ingress
选择这个nginx/nginx-ingress

2、展示values.yaml文件,分析helm安装nginx ingress的命令行覆盖参数(很重要)
helm show values nginx/nginx-ingress

3、安装nginx-ingress
kubectl create namespace nginx-ingress
helm install gateway nginx/nginx-ingress \
--namespace nginx-ingress \
--set controller.hostNetwork=true \
--set controller.healthStatus=true \
--set controller.service.type=NodePort \
--set controller.service.httpPort.nodePort=30080 \
--set controller.service.httpsPort.nodePort=30443

使用NodePort网络访问方式,http端口为30080,https端口为30443

继续阅读CentOS搭建k8s集群(7)—安装nginx-ingress

CentOS清空iptables规则

1、查看iptables配置
iptables -L

2、清除默认链的规则
iptables -F

3、清除自定义链
iptables -X

4、保存当前规则
service iptables save
保存时如果报错
The service command supports only basic LSB actions (start, stop, restart, try-restart, reload, force-reload, status). For other actions, please try to use systemctl.
先安装服务
yum install iptables-services

5、重启服务
systemctl restart iptables

CentOS搭建k8s集群(6)—k8s主节点ip变更问题

k8s主节点ip变更了,从192.168.101.1变为了192.168.201.1。记录这次不成功的修改,最后还是重新初始化了,因为pod的ip还是没有变

1、现象执行命令报错
kubectl get nodes

Unable to connect to the server: dial tcp 192.168.101.1:6443: i/o timeout

2、修改/etc/kubernetes下的配置文件,除pki目录以外,所有文件都要改IP地址
/etc/kubernetes/admin.conf
/etc/kubernetes/controller-manager.conf
/etc/kubernetes/kubelet.conf
/etc/kubernetes/scheduler.conf
/etc/kubernetes/manifests/etcd.yaml
/etc/kubernetes/manifests/kube-apiserver.yaml
/etc/kubernetes/manifests/kube-controller-manager.yaml
/etc/kubernetes/manifests/kube-scheduler.yaml

命令
cd /etc/kubernetes/
sed -i 's/192.168.101.1/192.168.201.1/g' ./.*conf
cd /etc/kubernetes/manifests/
sed -i 's/192.168.101.1/192.168.201.1/g' ./*.yaml

继续阅读CentOS搭建k8s集群(6)—k8s主节点ip变更问题

CentOS搭建jenkins(2)—从gitlab拉取

1、配置jdk、maven、git全局参数
Jenkins – 系统管理 – 全局工具配置
1)Maven 配置
默认 settings 提供:使用默认Maven设置
默认全局 settings 提供:使用默认Maven全局设置
2)JDK
别名:openjdk
JAVA_HOME:/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.262.b10-0.el7_8.x86_64

3)Git
Name:git
Path to Git executable:/usr/bin/git

4)Maven
Name:maven
MAVEN_HOME:/usr/share/maven

2、配置远程部署
1)安装Publish Over SSH插件
2)Jenkins – 系统管理 – 系统配置 – Publish over SSH
新增SSH Server
Name:tomcat
Hostname:192.168.100.2
Username:root
Remote Directory:/home
选择Use password authentication, or use a different key
Passphrase / Password:123456
Port:22

继续阅读CentOS搭建jenkins(2)—从gitlab拉取

软件及互联网爱好者