使用kubectl命令,需要访问kube-apiserver,而访问kube-apiserver需要对身份进行认证
将主节点下的/root/.kube/config文件放到工作节点的相同目录下
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集群(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集群(8)—nginx-ingress简单使用
1、拉取镜像docker pull httpd
2、创建一个podvi /home/httpd.yaml
填入:apiVersion: apps/v1
kind: Deployment
metadata:
name: httpd
spec:
replicas: 1
selector:
matchLabels:
app: httpd
template:
metadata:
labels:
app: httpd
spec:
containers:
- name: httpd
image: httpd:latest
CentOS搭建k8s集群(7)—安装nginx-ingress
服务器信息
master:192.168.201.1
node1:192.168.101.2
node2:192.168.101.3
1、查找nginx-ingresshelm search repo nginx-ingress
选择这个nginx/nginx-ingress
2、展示values.yaml文件,分析helm安装nginx ingress的命令行覆盖参数(很重要)helm show values nginx/nginx-ingress
3、安装nginx-ingresskubectl 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清空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
IDEA2020.2.3安装方法
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)GitName:git
Path to Git executable:/usr/bin/git
4)MavenName:maven
MAVEN_HOME:/usr/share/maven
2、配置远程部署
1)安装Publish Over SSH插件
2)Jenkins – 系统管理 – 系统配置 – Publish over SSH
新增SSH ServerName: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(1)—安装jenkins
jenkins是一个开源持续集成工具
目标:jenkins从gitlab、github、svn拉取代码,编译部署到远程服务器tomcat中/k8s集群中
1、服务器准备
服务器安装jdk、maven、git,这里全部用yum安装yum install java-1.8* maven git
2、查看安装版本java -version
openjdk version "1.8.0_262"
OpenJDK Runtime Environment (build 1.8.0_262-b10)
OpenJDK 64-Bit Server VM (build 25.262-b10, mixed mode)mvn -version
Apache Maven 3.0.5 (Red Hat 3.0.5-17)
Maven home: /usr/share/maven
Java version: 1.8.0_262, vendor: Oracle Corporation
Java home: /usr/lib/jvm/java-1.8.0-openjdk-1.8.0.262.b10-0.el7_8.x86_64/jre
Default locale: en_US, platform encoding: ANSI_X3.4-1968
OS name: "linux", version: "3.10.0-1062.4.2.vz7.116.7", arch: "amd64", family: "unix"git --version
git version 1.8.3.1