你玩过五子棋吗:
你想尝试和AI对战吗?
你想和好友面对面对战吗?
你想和好友网络对战吗?
来吧!
本地版:
网络对战版:
来吧!耍起来!
开源地址:
目前还在code中……

路是一步步走出来的~
你玩过五子棋吗:
你想尝试和AI对战吗?
你想和好友面对面对战吗?
你想和好友网络对战吗?
来吧!
本地版:
网络对战版:
来吧!耍起来!
开源地址:
目前还在code中……
在那个宁静的午后,我沉浸在实验的乐趣中,耳边轻柔的音乐伴随着我专注的探索。然而,每当实验中需要查阅资料时,我总是不得不依赖ChatGPT。众所周知,访问ChatGPT并非易事,而国内的使用又因登录步骤繁琐而让人望而却步。我渴望有一个便捷的窗口,只需将问题抛出,便能直接获得所需的信息。比如,最近我在研究Greenplum数据库,对于gpstop命令的众多参数,我并不喜欢阅读那些冗长的英文帮助文档。如果能有人帮我简要总结一下各个参数的含义及其使用方法,那将是我莫大的福音。毕竟,这种信息在网上固然不少,但繁琐的查找过程实在让人心生厌烦。
我心中萌生了一个构想:打造一个专属的个人工具。这个工具设计得极为简约,核心功能仅限于对话交流,无需繁琐的登录或注册流程。它的界面设计将充满个性,酷炫十足,完美契合我的审美风格。无论是手机端、平板还是电脑上,都能流畅使用。更重要的是,它不会存储对话历史,每次刷新界面后,历史信息都会被清空,从而确保每一次对话都是全新的开始。这样的设想,既实用又充满未来感。
我只是一个小运维、不会后端java、也不想接触VUE、而且也不想那么困难,因此采用的架构是:
设计蓝图既定,我便满怀热情地着手实施。首要任务是开发一个API接口。鉴于预算有限,我决定寻找一个免费的API服务。在网络上广泛搜寻后,我发现了一个理想的平台——清华智谱SDK。仔细阅读了官方的SDK说明文档,我发现搭建过程似乎并不复杂,很快就能上手。于是,我跃跃欲试,开始了调试工作。然而,令人意外的是,系统竟然提示我欠费。这让我感到困惑,难道是我误解了什么?这究竟是怎么回事呢?
原来如此,我竟然早已拥有这个账户,只是没想到API服务已经过期了,连官方赠送的期限也早已届满。既然如此,那也没关系,重新申请一个新的API即可。既然模型选择了性能卓越的GLM4-Flash,那就开始编写一个简单的code.py文件,来测试一下模型的调用功能。
我将启动一个核心API的调用测试,亲自检验这个接口的实用性与性能。当然,为了更深入地了解,我将利用AI的辅助,看看这个接口是否能够满足我们的期待。
python代码解读复制代码from zhipuai import ZhipuAI
# 读取 API 密钥
def read_api_key(file_path="GLM4-Flash.key"):
with open(file_path, "r") as file:
api_key = file.read().strip() # 读取并去掉多余的空白字符
return api_key
# 使用读取到的 API 密钥初始化客户端
api_key = read_api_key("GLM4-Flash.key") # 根据实际路径调整文件名
client = ZhipuAI(api_key=api_key)
# 用来存储对话历史
messages = []
def chat_with_model():
while True:
# 获取用户输入
user_input = input("你:")
if user_input.lower() == "exit":
print("退出对话")
break
# 将用户输入添加到消息历史
messages.append({"role": "user", "content": user_input})
# 调用 API 获取模型的响应
response = client.chat.completions.create(
model="glm-4-flash", # 使用的模型
messages=messages # 传递对话历史
)
# 提取并打印模型的响应
model_response = response.choices[0].message.content # 修正此行
print(f"模型:{model_response}")
# 将模型的响应添加到消息历史
messages.append({"role": "assistant", "content": model_response})
if __name__ == "__main__":
print("欢迎与自然语言模型聊天!输入 'exit' 结束对话。")
chat_with_model()
powershell代码解读复制代码PS D:\zhipu> python core.py
欢迎与自然语言模型聊天!输入 'exit' 结束对话。
你:你好!你是什么模型?
模型:你好!我是一个基于人工智能的语言模型,名为 ChatGLM。我是在清华大学 KEG 实验室和智谱 AI 公司于 2024 年共同训练的语言模型 GLM-4 的基础上开发的。我的任务是针对用户的问题和要求提供适当的答复和支持。
你:exit
退出对话
PS D:\zhipu>
经过一番测试,一切顺利,接口表现良好。接下来,我将着手解决界面设计的问题。我选择了一个之前使用过的框架——Streamlit。这个框架非常有趣,它允许我使用Markdown(MD)语法直接编写前端页面。最令人兴奋的是,如果我对代码进行了修改,甚至无需退出页面,只需刷新一下,就能实时看到修改后的效果。
开干!
python代码解读复制代码import streamlit as st
from zhipuai import ZhipuAI
# 读取 API 密钥
...(略)
# 页面标题
st.set_page_config(page_title="# AI @heike07")
st.title("# AI @heike07")
# 历史对话
with st.container():
st.markdown('<div>')
# 显示消息
for msg in st.session_state.messages:
if msg["role"] == "user":
st.markdown(f'<div>{msg["content"]}</div>')
else:
st.markdown(f'<div>{msg["content"]}</div>')
st.markdown('</div>')
# 用户输入框
user_input = st.text_input("请输入消息:", "")
if st.button("提交") and user_input:
st.session_state.messages.append({"role": "user", "content": user_input})
response = client.chat.completions.create(
model="glm-4-flash",
messages=st.session_state.messages
)
model_response = response.choices[0].message.content
st.session_state.messages.append({"role": "assistant", "content": model_response})
st.rerun()
if not user_input:
st.warning("请输入消息进行对话。")
通过浏览器访问localhost:8501测试了,一下没有什么问题,也可以实现基础的对话。
礼成,接下来就是界面的优化。
python代码解读复制代码# 找到历史记录这部分带入class样式
# 显示历史对话
for msg in st.session_state.messages:
if msg["role"] == "user":
st.markdown(f'<div class="user-message">{msg["content"]}</div>', unsafe_allow_html=True)
else:
st.markdown(f'<div class="assistant-message">{msg["content"]}</div>', unsafe_allow_html=True)
# 再写一点样式
st.markdown("""
<style>
.user-message {
background: linear-gradient(135deg, #00c6ff, #0072ff); /* 蓝色渐变 */
padding: 15px;
border-radius: 20px;
margin: 12px 0;
width: auto;
word-wrap: break-word;
text-align: left;
display: inline-block;
float: right;
box-shadow: 0 8px 30px rgba(0, 114, 255, 0.3); /* 强化阴影 */
color: white;
border: 2px solid rgba(0, 114, 255, 0.6); /* 边框 */
}
.assistant-message {
background: linear-gradient(135deg, #00b09b, #96c93d); /* 绿色渐变 */
padding: 15px;
border-radius: 20px;
margin: 12px 0;
width: auto;
word-wrap: break-word;
text-align: left;
display: inline-block;
box-shadow: 0 8px 30px rgba(0, 255, 123, 0.3); /* 强化阴影 */
color: white;
border: 2px solid rgba(0, 255, 123, 0.6); /* 边框 */
}
</style>
""", unsafe_allow_html=True)
OK,没问题了,非常酷炫!
看一下效果,没什么问题了。
接下来就是部署了,我们采用docker方式来部署,蛮简单的写一个dockerfile文件来实现这个事情
yaml代码解读复制代码# 使用官方的 Python 镜像作为基础镜像
FROM python:3.10-slim
# 设置工作目录
WORKDIR /app
# 复制当前目录下的所有文件到容器中的 /app 目录
COPY . /app
# 设置清华大学的 PyPI 镜像源
RUN pip config set global.index-url https://pypi.tuna.tsinghua.edu.cn/simple
# 安装程序所需的 Python 库
RUN pip install -r requirements.txt
# 开放 8501 端口(Streamlit 默认端口)
EXPOSE 8501
# 设置容器启动时的命令,运行 Streamlit 应用
CMD ["streamlit", "run", "ui.py"]
上面只是简单解释一下从0-1的过程,该项目已经开源到github,具体可以去ai.heike07.cn查看并访问,当然如果你不想构建自己的也可以用我的,嘿嘿,不要搞破坏就行~
继续滚去做实验了,但是多了一个便携的小工具,多端都可以访问,嘿嘿!
作者:heike07
链接:https://juejin.cn/spost/7449419385947602978
来源:稀土掘金
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

作用:将将包含表头的 CSV 文件批量导入至 MYSQL
使用方式:
启动脚本
nohup python3 csv_input_mysql.py > csv_input_mysql.log &
生成的文件名称 csv_input_mysql.log 可以根据情况修改,如果想保留全部日志可以将 > 替换为 >> 即可
导出错误日志
cat csv_input_mysql.log | grep '创建失败' > csv_input_mysql.log.ERR
获取全部 CSV 文件名称 [成功]
cat csv_input_mysql.log | grep '正在疯狂处理' | awk '{print $2}' > csv_files.list
获取全部表名称 [成功]
cat csv_input_mysql.log | grep '创建成功' | awk '{print $2}' > table_names.list
源数据无法预估质量,会出现源数据换行等情况,此时可以使用清洗工具进行清洗,清洗后即可进行验证
通过数据导入程序进行导入程序后,对原始csv进行清洗
编辑 cleaned_data.py 文件修改
# 清洗前源数据
input_file = 'you_file.csv'
# 清洗后数据
output_file = 'cleaned_you_file.csv'
修改完成后进行执行
python3 cleaned_data.py
执行成功后通过wc命令进行行数获取
wc -l cleaned_you_file.csv
数据库通过
SELECT COUNT(1) FROM you_file
得出的数差值为1
数据验证成功!
具体点击原文链接查看,或直接访问 此链接 查看
# K8s rescue plan
··· Reset the virtual machine image, but did not reset my brain!
## cause
Directly power off all nodes and set Docker to not start up
## Can it be reproduced
Yes, the number of replicates is 2
##Analysis process
Restore the virtual machine to the normal state of the k8s cluster, observe the results of "Docker ps - a" and record it
### master
```shell
# masternode
[root@k8smaster ~]# kubectl get node
NAME STATUS ROLES AGE VERSION
k8smaster Ready control-plane,master 7d21h v1.23.6
k8snode01 Ready <none> 7d21h v1.23.6
k8snode02 Ready <none> 7d21h v1.23.6
[root@k8smaster ~]#
[root@k8smaster ~]# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
c12f3abcf771 a4ca41631cc7 "/coredns -conf /etc…" 7 days ago Up 7 days k8s_coredns_coredns-6d8c4cb4d-6jjh5_kube-system_5880858e-7211-4bbb-8c93-90c928f68622_0
95edcbc13770 a4ca41631cc7 "/coredns -conf /etc…" 7 days ago Up 7 days k8s_coredns_coredns-6d8c4cb4d-d7st4_kube-system_078cc83a-b061-4e81-bcf6-cf21073cdd4e_0
5b0e34035658 registry.aliyuncs.com/google_containers/pause:3.6 "/pause" 7 days ago Up 7 days k8s_POD_coredns-6d8c4cb4d-6jjh5_kube-system_5880858e-7211-4bbb-8c93-90c928f68622_0
e78106ac1966 registry.aliyuncs.com/google_containers/pause:3.6 "/pause" 7 days ago Up 7 days k8s_POD_coredns-6d8c4cb4d-d7st4_kube-system_078cc83a-b061-4e81-bcf6-cf21073cdd4e_0
68aba3e09b9b d73868a08083 "/opt/bin/flanneld -…" 7 days ago Up 7 days k8s_kube-flannel_kube-flannel-ds-zz5cl_kube-flannel_24b1f309-0143-4627-8770-b78a7de603b0_0
95c152dd0190 registry.aliyuncs.com/google_containers/pause:3.6 "/pause" 7 days ago Up 7 days k8s_POD_kube-flannel-ds-zz5cl_kube-flannel_24b1f309-0143-4627-8770-b78a7de603b0_0
d011952c4be9 f21c8d21558c "/usr/local/bin/kube…" 7 days ago Up 7 days k8s_kube-proxy_kube-proxy-2g5ql_kube-system_5d508d75-495a-4159-87ee-20a29d9061e7_0
47da71089e8e registry.aliyuncs.com/google_containers/pause:3.6 "/pause" 7 days ago Up 7 days k8s_POD_kube-proxy-2g5ql_kube-system_5d508d75-495a-4159-87ee-20a29d9061e7_0
282fbf54321f bc6794cb54ac "kube-scheduler --au…" 7 days ago Up 7 days k8s_kube-scheduler_kube-scheduler-k8smaster_kube-system_c02a11b9d6ed102dae71c2a5ba394332_0
c650a0a82e8f 25f8c7f3da61 "etcd --advertise-cl…" 7 days ago Up 7 days k8s_etcd_etcd-k8smaster_kube-system_3b9b93edf9e5751a1bf3a1e147cce967_0
81b1b2d16921 1dab4fc7b6e0 "kube-controller-man…" 7 days ago Up 7 days k8s_kube-controller-manager_kube-controller-manager-k8smaster_kube-system_62f82849ccf351f48be952f05e36c490_0
3ddac11bfee8 62bc5d8258d6 "kube-apiserver --ad…" 7 days ago Up 7 days k8s_kube-apiserver_kube-apiserver-k8smaster_kube-system_ab1948dc99a13b01ea539c462d17491c_0
5b5d34542b36 registry.aliyuncs.com/google_containers/pause:3.6 "/pause" 7 days ago Up 7 days k8s_POD_kube-scheduler-k8smaster_kube-system_c02a11b9d6ed102dae71c2a5ba394332_0
a9bfe6ec50de registry.aliyuncs.com/google_containers/pause:3.6 "/pause" 7 days ago Up 7 days k8s_POD_kube-controller-manager-k8smaster_kube-system_62f82849ccf351f48be952f05e36c490_0
754226687c2f registry.aliyuncs.com/google_containers/pause:3.6 "/pause" 7 days ago Up 7 days k8s_POD_kube-apiserver-k8smaster_kube-system_ab1948dc99a13b01ea539c462d17491c_0
4d09932ad92f registry.aliyuncs.com/google_containers/pause:3.6 "/pause" 7 days ago Up 7 days k8s_POD_etcd-k8smaster_kube-system_3b9b93edf9e5751a1bf3a1e147cce967_0
[root@k8smaster ~]#
[root@k8smaster ~]# docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
c12f3abcf771 a4ca41631cc7 "/coredns -conf /etc…" 7 days ago Up 7 days k8s_coredns_coredns-6d8c4cb4d-6jjh5_kube-system_5880858e-7211-4bbb-8c93-90c928f68622_0
95edcbc13770 a4ca41631cc7 "/coredns -conf /etc…" 7 days ago Up 7 days k8s_coredns_coredns-6d8c4cb4d-d7st4_kube-system_078cc83a-b061-4e81-bcf6-cf21073cdd4e_0
5b0e34035658 registry.aliyuncs.com/google_containers/pause:3.6 "/pause" 7 days ago Up 7 days k8s_POD_coredns-6d8c4cb4d-6jjh5_kube-system_5880858e-7211-4bbb-8c93-90c928f68622_0
e78106ac1966 registry.aliyuncs.com/google_containers/pause:3.6 "/pause" 7 days ago Up 7 days k8s_POD_coredns-6d8c4cb4d-d7st4_kube-system_078cc83a-b061-4e81-bcf6-cf21073cdd4e_0
68aba3e09b9b d73868a08083 "/opt/bin/flanneld -…" 7 days ago Up 7 days k8s_kube-flannel_kube-flannel-ds-zz5cl_kube-flannel_24b1f309-0143-4627-8770-b78a7de603b0_0
0936e9013449 flannel/flannel "cp -f /etc/kube-fla…" 7 days ago Exited (0) 7 days ago k8s_install-cni_kube-flannel-ds-zz5cl_kube-flannel_24b1f309-0143-4627-8770-b78a7de603b0_0
88cf1da60660 flannel/flannel-cni-plugin "cp -f /flannel /opt…" 7 days ago Exited (0) 7 days ago k8s_install-cni-plugin_kube-flannel-ds-zz5cl_kube-flannel_24b1f309-0143-4627-8770-b78a7de603b0_0
95c152dd0190 registry.aliyuncs.com/google_containers/pause:3.6 "/pause" 7 days ago Up 7 days k8s_POD_kube-flannel-ds-zz5cl_kube-flannel_24b1f309-0143-4627-8770-b78a7de603b0_0
d011952c4be9 f21c8d21558c "/usr/local/bin/kube…" 7 days ago Up 7 days k8s_kube-proxy_kube-proxy-2g5ql_kube-system_5d508d75-495a-4159-87ee-20a29d9061e7_0
47da71089e8e registry.aliyuncs.com/google_containers/pause:3.6 "/pause" 7 days ago Up 7 days k8s_POD_kube-proxy-2g5ql_kube-system_5d508d75-495a-4159-87ee-20a29d9061e7_0
282fbf54321f bc6794cb54ac "kube-scheduler --au…" 7 days ago Up 7 days k8s_kube-scheduler_kube-scheduler-k8smaster_kube-system_c02a11b9d6ed102dae71c2a5ba394332_0
c650a0a82e8f 25f8c7f3da61 "etcd --advertise-cl…" 7 days ago Up 7 days k8s_etcd_etcd-k8smaster_kube-system_3b9b93edf9e5751a1bf3a1e147cce967_0
81b1b2d16921 1dab4fc7b6e0 "kube-controller-man…" 7 days ago Up 7 days k8s_kube-controller-manager_kube-controller-manager-k8smaster_kube-system_62f82849ccf351f48be952f05e36c490_0
3ddac11bfee8 62bc5d8258d6 "kube-apiserver --ad…" 7 days ago Up 7 days k8s_kube-apiserver_kube-apiserver-k8smaster_kube-system_ab1948dc99a13b01ea539c462d17491c_0
5b5d34542b36 registry.aliyuncs.com/google_containers/pause:3.6 "/pause" 7 days ago Up 7 days k8s_POD_kube-scheduler-k8smaster_kube-system_c02a11b9d6ed102dae71c2a5ba394332_0
a9bfe6ec50de registry.aliyuncs.com/google_containers/pause:3.6 "/pause" 7 days ago Up 7 days k8s_POD_kube-controller-manager-k8smaster_kube-system_62f82849ccf351f48be952f05e36c490_0
754226687c2f registry.aliyuncs.com/google_containers/pause:3.6 "/pause" 7 days ago Up 7 days k8s_POD_kube-apiserver-k8smaster_kube-system_ab1948dc99a13b01ea539c462d17491c_0
4d09932ad92f registry.aliyuncs.com/google_containers/pause:3.6 "/pause" 7 days ago Up 7 days k8s_POD_etcd-k8smaster_kube-system_3b9b93edf9e5751a1bf3a1e147cce967_0
[root@k8smaster ~]#
[root@k8smaster ~]# docker ps -a | grep Exited
0936e9013449 flannel/flannel "cp -f /etc/kube-fla…" 7 days ago Exited (0) 7 days ago k8s_install-cni_kube-flannel-ds-zz5cl_kube-flannel_24b1f309-0143-4627-8770-b78a7de603b0_0
88cf1da60660 flannel/flannel-cni-plugin "cp -f /flannel /opt…" 7 days ago Exited (0) 7 days ago k8s_install-cni-plugin_kube-flannel-ds-zz5cl_kube-flannel_24b1f309-0143-4627-8770-b78a7de603b0_0
[root@k8smaster ~]#
[root@k8smaster ~]# kubectl get all
NAME READY STATUS RESTARTS AGE
pod/k8s-nginx-6d779d947c-59qh8 1/1 Running 0 7d21h
pod/k8s-nginx-6d779d947c-djzx7 1/1 Running 0 7d21h
pod/k8s-nginx-6d779d947c-wxhx2 1/1 Running 0 7d21h
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
service/kubernetes ClusterIP 10.1.0.1 <none> 443/TCP 7d21h
NAME READY UP-TO-DATE AVAILABLE AGE
deployment.apps/k8s-nginx 3/3 3 3 7d21h
NAME DESIRED CURRENT READY AGE
replicaset.apps/k8s-nginx-6d779d947c 3 3 3 7d21h
[root@k8smaster ~]#
[root@k8smaster ~]# systemctl status kubelet
● kubelet.service - kubelet: The Kubernetes Node Agent
Loaded: loaded (/usr/lib/systemd/system/kubelet.service; enabled; vendor preset: disabled)
Drop-In: /usr/lib/systemd/system/kubelet.service.d
└─10-kubeadm.conf
Active: active (running) since Mon 2023-09-11 16:15:43 CST; 1 weeks 0 days ago
Docs: https://kubernetes.io/docs/
Main PID: 13497 (kubelet)
Tasks: 15
Memory: 68.3M
CGroup: /system.slice/kubelet.service
└─13497 /usr/bin/kubelet --bootstrap-kubeconfig=/etc/kubernetes/bootstrap-kubelet.conf --kubeconfig=/etc/kubernetes/kubelet.conf --config=/var/lib/kubelet/config.yaml --network-plugin=cni --po...
Sep 11 16:24:44 k8smaster kubelet[13497]: I0911 16:24:44.189915 13497 reconciler.go:221] "operationExecutor.VerifyControllerAttachedVolume started for volume \"config-volume\" (UniqueName: \"kubernetes...
Sep 11 16:24:44 k8smaster kubelet[13497]: I0911 16:24:44.189968 13497 reconciler.go:221] "operationExecutor.VerifyControllerAttachedVolume started for volume \"kube-api-access-jrpx5\" (UniqueName: \"ku...
Sep 11 16:24:44 k8smaster kubelet[13497]: I0911 16:24:44.190014 13497 reconciler.go:221] "operationExecutor.VerifyControllerAttachedVolume started for volume \"kube-api-access-pmkws\" (UniqueName: \"ku...
Sep 11 16:24:44 k8smaster kubelet[13497]: I0911 16:24:44.190036 13497 reconciler.go:221] "operationExecutor.VerifyControllerAttachedVolume started for volume \"config-volume\" (UniqueName: \"kubernetes...
Sep 11 16:24:44 k8smaster kubelet[13497]: I0911 16:24:44.711527 13497 pod_container_deletor.go:79] "Container not found in pod's containers" containerID="e78106ac1966087346b4b511a425ac7a3...6b1130cab1b65"
Sep 11 16:24:44 k8smaster kubelet[13497]: map[string]interface {}{"cniVersion":"0.3.1", "hairpinMode":true, "ipMasq":false, "ipam":map[string]interface {}{"ranges":[][]map[string]interface {}{[]map[strin...
Sep 11 16:24:44 k8smaster kubelet[13497]: delegateAdd: netconf sent to delegate plugin:
Sep 11 16:24:44 k8smaster kubelet[13497]: {"cniVersion":"0.3.1","hairpinMode":true,"ipMasq":false,"ipam":{"ranges":[[{"subnet":"10.244.0.0/24"}]],"routes":[{"dst":"10.244.0.0/16"}],"type":"...ype":"bridge"}
Sep 11 16:24:44 k8smaster kubelet[13497]: map[string]interface {}{"cniVersion":"0.3.1", "hairpinMode":true, "ipMasq":false, "ipam":map[string]interface {}{"ranges":[][]map[string]interface {}{[]map[strin...
Sep 11 16:24:44 k8smaster kubelet[13497]: delegateAdd: netconf sent to delegate plugin:
Hint: Some lines were ellipsized, use -l to show in full.
[root@k8smaster ~]#
[root@k8smaster ~]# ip a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
valid_lft forever preferred_lft forever
inet6 ::1/128 scope host
valid_lft forever preferred_lft forever
2: ens33: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
link/ether 00:0c:29:37:27:88 brd ff:ff:ff:ff:ff:ff
inet 192.168.7.100/24 brd 192.168.7.255 scope global noprefixroute ens33
valid_lft forever preferred_lft forever
inet6 fe80::20c:29ff:fe37:2788/64 scope link noprefixroute
valid_lft forever preferred_lft forever
3: ens36: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
link/ether 00:0c:29:37:27:92 brd ff:ff:ff:ff:ff:ff
inet 192.168.157.149/24 brd 192.168.157.255 scope global noprefixroute dynamic ens36
valid_lft 1671sec preferred_lft 1671sec
inet6 fe80::bdcf:3ffc:b6f6:f1ed/64 scope link noprefixroute
valid_lft forever preferred_lft forever
4: docker0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc noqueue state DOWN group default
link/ether 02:42:e0:e8:64:12 brd ff:ff:ff:ff:ff:ff
inet 172.17.0.1/16 brd 172.17.255.255 scope global docker0
valid_lft forever preferred_lft forever
5: flannel.1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1450 qdisc noqueue state UNKNOWN group default
link/ether f2:94:58:2b:80:92 brd ff:ff:ff:ff:ff:ff
inet 10.244.0.0/32 scope global flannel.1
valid_lft forever preferred_lft forever
inet6 fe80::f094:58ff:fe2b:8092/64 scope link
valid_lft forever preferred_lft forever
6: cni0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1450 qdisc noqueue state UP group default qlen 1000
link/ether 4e:41:5e:15:b7:62 brd ff:ff:ff:ff:ff:ff
inet 10.244.0.1/24 brd 10.244.0.255 scope global cni0
valid_lft forever preferred_lft forever
inet6 fe80::4c41:5eff:fe15:b762/64 scope link
valid_lft forever preferred_lft forever
7: vetha9ed6409@if2: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1450 qdisc noqueue master cni0 state UP group default
link/ether 76:e0:63:90:81:7d brd ff:ff:ff:ff:ff:ff link-netnsid 0
inet6 fe80::74e0:63ff:fe90:817d/64 scope link
valid_lft forever preferred_lft forever
8: veth7a07689e@if2: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1450 qdisc noqueue master cni0 state UP group default
link/ether c6:66:fb:c0:75:cd brd ff:ff:ff:ff:ff:ff link-netnsid 1
inet6 fe80::c466:fbff:fec0:75cd/64 scope link
valid_lft forever preferred_lft forever
[root@k8smaster ~]#
[root@k8smaster ~]# route
-bash: route: command not found
[root@k8smaster ~]#
[root@k8smaster ~]# iptables -L -n
Chain INPUT (policy ACCEPT)
target prot opt source destination
KUBE-NODEPORTS all -- 0.0.0.0/0 0.0.0.0/0 /* kubernetes health check service ports */
KUBE-EXTERNAL-SERVICES all -- 0.0.0.0/0 0.0.0.0/0 ctstate NEW /* kubernetes externally-visible service portals */
KUBE-FIREWALL all -- 0.0.0.0/0 0.0.0.0/0
Chain FORWARD (policy ACCEPT)
target prot opt source destination
KUBE-FORWARD all -- 0.0.0.0/0 0.0.0.0/0 /* kubernetes forwarding rules */
KUBE-SERVICES all -- 0.0.0.0/0 0.0.0.0/0 ctstate NEW /* kubernetes service portals */
KUBE-EXTERNAL-SERVICES all -- 0.0.0.0/0 0.0.0.0/0 ctstate NEW /* kubernetes externally-visible service portals */
DOCKER-USER all -- 0.0.0.0/0 0.0.0.0/0
DOCKER-ISOLATION-STAGE-1 all -- 0.0.0.0/0 0.0.0.0/0
ACCEPT all -- 0.0.0.0/0 0.0.0.0/0 ctstate RELATED,ESTABLISHED
DOCKER all -- 0.0.0.0/0 0.0.0.0/0
ACCEPT all -- 0.0.0.0/0 0.0.0.0/0
ACCEPT all -- 0.0.0.0/0 0.0.0.0/0
FLANNEL-FWD all -- 0.0.0.0/0 0.0.0.0/0 /* flanneld forward */
Chain OUTPUT (policy ACCEPT)
target prot opt source destination
KUBE-SERVICES all -- 0.0.0.0/0 0.0.0.0/0 ctstate NEW /* kubernetes service portals */
KUBE-FIREWALL all -- 0.0.0.0/0 0.0.0.0/0
Chain DOCKER (1 references)
target prot opt source destination
Chain DOCKER-ISOLATION-STAGE-1 (1 references)
target prot opt source destination
DOCKER-ISOLATION-STAGE-2 all -- 0.0.0.0/0 0.0.0.0/0
RETURN all -- 0.0.0.0/0 0.0.0.0/0
Chain DOCKER-ISOLATION-STAGE-2 (1 references)
target prot opt source destination
DROP all -- 0.0.0.0/0 0.0.0.0/0
RETURN all -- 0.0.0.0/0 0.0.0.0/0
Chain DOCKER-USER (1 references)
target prot opt source destination
RETURN all -- 0.0.0.0/0 0.0.0.0/0
Chain FLANNEL-FWD (1 references)
target prot opt source destination
ACCEPT all -- 10.244.0.0/16 0.0.0.0/0 /* flanneld forward */
ACCEPT all -- 0.0.0.0/0 10.244.0.0/16 /* flanneld forward */
Chain KUBE-EXTERNAL-SERVICES (2 references)
target prot opt source destination
Chain KUBE-FIREWALL (2 references)
target prot opt source destination
DROP all -- 0.0.0.0/0 0.0.0.0/0 /* kubernetes firewall for dropping marked packets */ mark match 0x8000/0x8000
DROP all -- !127.0.0.0/8 127.0.0.0/8 /* block incoming localnet connections */ ! ctstate RELATED,ESTABLISHED,DNAT
Chain KUBE-FORWARD (1 references)
target prot opt source destination
DROP all -- 0.0.0.0/0 0.0.0.0/0 ctstate INVALID
ACCEPT all -- 0.0.0.0/0 0.0.0.0/0 /* kubernetes forwarding rules */ mark match 0x4000/0x4000
ACCEPT all -- 0.0.0.0/0 0.0.0.0/0 /* kubernetes forwarding conntrack rule */ ctstate RELATED,ESTABLISHED
Chain KUBE-KUBELET-CANARY (0 references)
target prot opt source destination
Chain KUBE-NODEPORTS (1 references)
target prot opt source destination
Chain KUBE-PROXY-CANARY (0 references)
target prot opt source destination
Chain KUBE-SERVICES (2 references)
target prot opt source destination
[root@k8smaster ~]#
```
Analysis shows that in a normal cluster, k8s can see that there are two initialization containers in the node node that are generated by copying files, while the others are all in the up state
### node01
```shell
#node01
[root@k8snode01 ~]# kubectl get node
The connection to the server localhost:8080 was refused - did you specify the right host or port?
[root@k8snode01 ~]#
[root@k8snode01 ~]# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
02d1b7ed4d94 nginx "/docker-entrypoint.…" 7 days ago Up 7 days k8s_nginx_k8s-nginx-6d779d947c-59qh8_default_056c7a0e-ac54-40f0-ad4d-70d5ec6f2a92_0
ad3c063c2818 registry.aliyuncs.com/google_containers/pause:3.6 "/pause" 7 days ago Up 7 days k8s_POD_k8s-nginx-6d779d947c-59qh8_default_056c7a0e-ac54-40f0-ad4d-70d5ec6f2a92_0
df414c590b55 d73868a08083 "/opt/bin/flanneld -…" 7 days ago Up 7 days k8s_kube-flannel_kube-flannel-ds-2bf4k_kube-flannel_5e1afce5-b4d3-45fd-9c58-4cace2b43283_0
25d0c45d1b2d registry.aliyuncs.com/google_containers/kube-proxy "/usr/local/bin/kube…" 7 days ago Up 7 days k8s_kube-proxy_kube-proxy-zr2m6_kube-system_7e2bdbc0-11ee-4263-8752-5342d93e9c5f_0
f426822aee9e registry.aliyuncs.com/google_containers/pause:3.6 "/pause" 7 days ago Up 7 days k8s_POD_kube-proxy-zr2m6_kube-system_7e2bdbc0-11ee-4263-8752-5342d93e9c5f_0
f8f25a24e78f registry.aliyuncs.com/google_containers/pause:3.6 "/pause" 7 days ago Up 7 days k8s_POD_kube-flannel-ds-2bf4k_kube-flannel_5e1afce5-b4d3-45fd-9c58-4cace2b43283_0
[root@k8snode01 ~]#
[root@k8snode01 ~]# docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
02d1b7ed4d94 nginx "/docker-entrypoint.…" 7 days ago Up 7 days k8s_nginx_k8s-nginx-6d779d947c-59qh8_default_056c7a0e-ac54-40f0-ad4d-70d5ec6f2a92_0
ad3c063c2818 registry.aliyuncs.com/google_containers/pause:3.6 "/pause" 7 days ago Up 7 days k8s_POD_k8s-nginx-6d779d947c-59qh8_default_056c7a0e-ac54-40f0-ad4d-70d5ec6f2a92_0
df414c590b55 d73868a08083 "/opt/bin/flanneld -…" 7 days ago Up 7 days k8s_kube-flannel_kube-flannel-ds-2bf4k_kube-flannel_5e1afce5-b4d3-45fd-9c58-4cace2b43283_0
70d322520704 flannel/flannel "cp -f /etc/kube-fla…" 7 days ago Exited (0) 7 days ago k8s_install-cni_kube-flannel-ds-2bf4k_kube-flannel_5e1afce5-b4d3-45fd-9c58-4cace2b43283_0
abac9835c972 flannel/flannel-cni-plugin "cp -f /flannel /opt…" 7 days ago Exited (0) 7 days ago k8s_install-cni-plugin_kube-flannel-ds-2bf4k_kube-flannel_5e1afce5-b4d3-45fd-9c58-4cace2b43283_0
25d0c45d1b2d registry.aliyuncs.com/google_containers/kube-proxy "/usr/local/bin/kube…" 7 days ago Up 7 days k8s_kube-proxy_kube-proxy-zr2m6_kube-system_7e2bdbc0-11ee-4263-8752-5342d93e9c5f_0
f426822aee9e registry.aliyuncs.com/google_containers/pause:3.6 "/pause" 7 days ago Up 7 days k8s_POD_kube-proxy-zr2m6_kube-system_7e2bdbc0-11ee-4263-8752-5342d93e9c5f_0
f8f25a24e78f registry.aliyuncs.com/google_containers/pause:3.6 "/pause" 7 days ago Up 7 days k8s_POD_kube-flannel-ds-2bf4k_kube-flannel_5e1afce5-b4d3-45fd-9c58-4cace2b43283_0
[root@k8snode01 ~]#
[root@k8snode01 ~]# docker ps -a | grep Exited
70d322520704 flannel/flannel "cp -f /etc/kube-fla…" 7 days ago Exited (0) 7 days ago k8s_install-cni_kube-flannel-ds-2bf4k_kube-flannel_5e1afce5-b4d3-45fd-9c58-4cace2b43283_0
abac9835c972 flannel/flannel-cni-plugin "cp -f /flannel /opt…" 7 days ago Exited (0) 7 days ago k8s_install-cni-plugin_kube-flannel-ds-2bf4k_kube-flannel_5e1afce5-b4d3-45fd-9c58-4cace2b43283_0
[root@k8snode01 ~]#
[root@k8snode01 ~]# route
-bash: route: command not found
[root@k8snode01 ~]#
[root@k8snode01 ~]# ip a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
valid_lft forever preferred_lft forever
inet6 ::1/128 scope host
valid_lft forever preferred_lft forever
2: ens33: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
link/ether 00:0c:29:06:ce:c8 brd ff:ff:ff:ff:ff:ff
inet 192.168.7.101/24 brd 192.168.7.255 scope global noprefixroute ens33
valid_lft forever preferred_lft forever
inet6 fe80::20c:29ff:fe06:cec8/64 scope link noprefixroute
valid_lft forever preferred_lft forever
3: ens36: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
link/ether 00:0c:29:06:ce:d2 brd ff:ff:ff:ff:ff:ff
inet 192.168.157.150/24 brd 192.168.157.255 scope global noprefixroute dynamic ens36
valid_lft 1083sec preferred_lft 1083sec
inet6 fe80::2bba:1bc9:5ff2:c21a/64 scope link noprefixroute
valid_lft forever preferred_lft forever
4: docker0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc noqueue state DOWN group default
link/ether 02:42:7b:05:53:6f brd ff:ff:ff:ff:ff:ff
inet 172.17.0.1/16 brd 172.17.255.255 scope global docker0
valid_lft forever preferred_lft forever
5: flannel.1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1450 qdisc noqueue state UNKNOWN group default
link/ether 7a:b7:34:d3:fa:f1 brd ff:ff:ff:ff:ff:ff
inet 10.244.1.0/32 scope global flannel.1
valid_lft forever preferred_lft forever
inet6 fe80::78b7:34ff:fed3:faf1/64 scope link
valid_lft forever preferred_lft forever
6: cni0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1450 qdisc noqueue state UP group default qlen 1000
link/ether c6:41:f3:f6:6b:39 brd ff:ff:ff:ff:ff:ff
inet 10.244.1.1/24 brd 10.244.1.255 scope global cni0
valid_lft forever preferred_lft forever
inet6 fe80::c441:f3ff:fef6:6b39/64 scope link
valid_lft forever preferred_lft forever
7: vethdffd1800@if2: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1450 qdisc noqueue master cni0 state UP group default
link/ether 6e:f9:14:ca:b7:3a brd ff:ff:ff:ff:ff:ff link-netnsid 0
inet6 fe80::6cf9:14ff:feca:b73a/64 scope link
valid_lft forever preferred_lft forever
[root@k8snode01 ~]#
[root@k8snode01 ~]# iptables -L -n
Chain INPUT (policy ACCEPT)
target prot opt source destination
KUBE-NODEPORTS all -- 0.0.0.0/0 0.0.0.0/0 /* kubernetes health check service ports */
KUBE-EXTERNAL-SERVICES all -- 0.0.0.0/0 0.0.0.0/0 ctstate NEW /* kubernetes externally-visible service portals */
KUBE-FIREWALL all -- 0.0.0.0/0 0.0.0.0/0
Chain FORWARD (policy ACCEPT)
target prot opt source destination
KUBE-FORWARD all -- 0.0.0.0/0 0.0.0.0/0 /* kubernetes forwarding rules */
KUBE-SERVICES all -- 0.0.0.0/0 0.0.0.0/0 ctstate NEW /* kubernetes service portals */
KUBE-EXTERNAL-SERVICES all -- 0.0.0.0/0 0.0.0.0/0 ctstate NEW /* kubernetes externally-visible service portals */
DOCKER-USER all -- 0.0.0.0/0 0.0.0.0/0
DOCKER-ISOLATION-STAGE-1 all -- 0.0.0.0/0 0.0.0.0/0
ACCEPT all -- 0.0.0.0/0 0.0.0.0/0 ctstate RELATED,ESTABLISHED
DOCKER all -- 0.0.0.0/0 0.0.0.0/0
ACCEPT all -- 0.0.0.0/0 0.0.0.0/0
ACCEPT all -- 0.0.0.0/0 0.0.0.0/0
FLANNEL-FWD all -- 0.0.0.0/0 0.0.0.0/0 /* flanneld forward */
Chain OUTPUT (policy ACCEPT)
target prot opt source destination
KUBE-SERVICES all -- 0.0.0.0/0 0.0.0.0/0 ctstate NEW /* kubernetes service portals */
KUBE-FIREWALL all -- 0.0.0.0/0 0.0.0.0/0
Chain DOCKER (1 references)
target prot opt source destination
Chain DOCKER-ISOLATION-STAGE-1 (1 references)
target prot opt source destination
DOCKER-ISOLATION-STAGE-2 all -- 0.0.0.0/0 0.0.0.0/0
RETURN all -- 0.0.0.0/0 0.0.0.0/0
Chain DOCKER-ISOLATION-STAGE-2 (1 references)
target prot opt source destination
DROP all -- 0.0.0.0/0 0.0.0.0/0
RETURN all -- 0.0.0.0/0 0.0.0.0/0
Chain DOCKER-USER (1 references)
target prot opt source destination
RETURN all -- 0.0.0.0/0 0.0.0.0/0
Chain FLANNEL-FWD (1 references)
target prot opt source destination
ACCEPT all -- 10.244.0.0/16 0.0.0.0/0 /* flanneld forward */
ACCEPT all -- 0.0.0.0/0 10.244.0.0/16 /* flanneld forward */
Chain KUBE-EXTERNAL-SERVICES (2 references)
target prot opt source destination
Chain KUBE-FIREWALL (2 references)
target prot opt source destination
DROP all -- 0.0.0.0/0 0.0.0.0/0 /* kubernetes firewall for dropping marked packets */ mark match 0x8000/0x8000
DROP all -- !127.0.0.0/8 127.0.0.0/8 /* block incoming localnet connections */ ! ctstate RELATED,ESTABLISHED,DNAT
Chain KUBE-FORWARD (1 references)
target prot opt source destination
DROP all -- 0.0.0.0/0 0.0.0.0/0 ctstate INVALID
ACCEPT all -- 0.0.0.0/0 0.0.0.0/0 /* kubernetes forwarding rules */ mark match 0x4000/0x4000
ACCEPT all -- 0.0.0.0/0 0.0.0.0/0 /* kubernetes forwarding conntrack rule */ ctstate RELATED,ESTABLISHED
Chain KUBE-KUBELET-CANARY (0 references)
target prot opt source destination
Chain KUBE-NODEPORTS (1 references)
target prot opt source destination
Chain KUBE-PROXY-CANARY (0 references)
target prot opt source destination
Chain KUBE-SERVICES (2 references)
target prot opt source destination
[root@k8snode01 ~]#
```
Analysis shows that in a normal cluster, k8s can see that there are two initialization containers in the node node that are generated by copying files, while the others are all in the up state
### node02
```shell
#node02
[root@k8snode02 ~]# kubectl get node
The connection to the server localhost:8080 was refused - did you specify the right host or port?
[root@k8snode02 ~]#
[root@k8snode02 ~]# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
3e4b9444378b nginx "/docker-entrypoint.…" 7 days ago Up 7 days k8s_nginx_k8s-nginx-6d779d947c-wxhx2_default_43a547de-284a-4055-879b-7ecd926d0a41_0
25593b6e2880 nginx "/docker-entrypoint.…" 7 days ago Up 7 days k8s_nginx_k8s-nginx-6d779d947c-djzx7_default_01b1b881-d996-478c-bf7d-4f9491d0d63f_0
c4bba5dbdfb3 registry.aliyuncs.com/google_containers/pause:3.6 "/pause" 7 days ago Up 7 days k8s_POD_k8s-nginx-6d779d947c-djzx7_default_01b1b881-d996-478c-bf7d-4f9491d0d63f_0
d42203824011 registry.aliyuncs.com/google_containers/pause:3.6 "/pause" 7 days ago Up 7 days k8s_POD_k8s-nginx-6d779d947c-wxhx2_default_43a547de-284a-4055-879b-7ecd926d0a41_0
befe5b6209fd d73868a08083 "/opt/bin/flanneld -…" 7 days ago Up 7 days k8s_kube-flannel_kube-flannel-ds-gpnpx_kube-flannel_c6a1656c-d0cf-4026-b0d7-ff8885f24c1a_0
eb8137f30356 registry.aliyuncs.com/google_containers/kube-proxy "/usr/local/bin/kube…" 7 days ago Up 7 days k8s_kube-proxy_kube-proxy-n95s6_kube-system_dee6cae8-47a8-4b79-8eb9-1aeea3f673dd_0
9de41647ef33 registry.aliyuncs.com/google_containers/pause:3.6 "/pause" 7 days ago Up 7 days k8s_POD_kube-flannel-ds-gpnpx_kube-flannel_c6a1656c-d0cf-4026-b0d7-ff8885f24c1a_0
fa5300178a42 registry.aliyuncs.com/google_containers/pause:3.6 "/pause" 7 days ago Up 7 days k8s_POD_kube-proxy-n95s6_kube-system_dee6cae8-47a8-4b79-8eb9-1aeea3f673dd_0
[root@k8snode02 ~]#
[root@k8snode02 ~]#
[root@k8snode02 ~]# docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
3e4b9444378b nginx "/docker-entrypoint.…" 7 days ago Up 7 days k8s_nginx_k8s-nginx-6d779d947c-wxhx2_default_43a547de-284a-4055-879b-7ecd926d0a41_0
25593b6e2880 nginx "/docker-entrypoint.…" 7 days ago Up 7 days k8s_nginx_k8s-nginx-6d779d947c-djzx7_default_01b1b881-d996-478c-bf7d-4f9491d0d63f_0
c4bba5dbdfb3 registry.aliyuncs.com/google_containers/pause:3.6 "/pause" 7 days ago Up 7 days k8s_POD_k8s-nginx-6d779d947c-djzx7_default_01b1b881-d996-478c-bf7d-4f9491d0d63f_0
d42203824011 registry.aliyuncs.com/google_containers/pause:3.6 "/pause" 7 days ago Up 7 days k8s_POD_k8s-nginx-6d779d947c-wxhx2_default_43a547de-284a-4055-879b-7ecd926d0a41_0
befe5b6209fd d73868a08083 "/opt/bin/flanneld -…" 7 days ago Up 7 days k8s_kube-flannel_kube-flannel-ds-gpnpx_kube-flannel_c6a1656c-d0cf-4026-b0d7-ff8885f24c1a_0
80713a3f68d4 flannel/flannel "cp -f /etc/kube-fla…" 7 days ago Exited (0) 7 days ago k8s_install-cni_kube-flannel-ds-gpnpx_kube-flannel_c6a1656c-d0cf-4026-b0d7-ff8885f24c1a_0
354424bed696 flannel/flannel-cni-plugin "cp -f /flannel /opt…" 7 days ago Exited (0) 7 days ago k8s_install-cni-plugin_kube-flannel-ds-gpnpx_kube-flannel_c6a1656c-d0cf-4026-b0d7-ff8885f24c1a_0
eb8137f30356 registry.aliyuncs.com/google_containers/kube-proxy "/usr/local/bin/kube…" 7 days ago Up 7 days k8s_kube-proxy_kube-proxy-n95s6_kube-system_dee6cae8-47a8-4b79-8eb9-1aeea3f673dd_0
9de41647ef33 registry.aliyuncs.com/google_containers/pause:3.6 "/pause" 7 days ago Up 7 days k8s_POD_kube-flannel-ds-gpnpx_kube-flannel_c6a1656c-d0cf-4026-b0d7-ff8885f24c1a_0
fa5300178a42 registry.aliyuncs.com/google_containers/pause:3.6 "/pause" 7 days ago Up 7 days k8s_POD_kube-proxy-n95s6_kube-system_dee6cae8-47a8-4b79-8eb9-1aeea3f673dd_0
[root@k8snode02 ~]#
[root@k8snode02 ~]#
[root@k8snode02 ~]# docker ps -a | grep Exited
80713a3f68d4 flannel/flannel "cp -f /etc/kube-fla…" 7 days ago Exited (0) 7 days ago k8s_install-cni_kube-flannel-ds-gpnpx_kube-flannel_c6a1656c-d0cf-4026-b0d7-ff8885f24c1a_0
354424bed696 flannel/flannel-cni-plugin "cp -f /flannel /opt…" 7 days ago Exited (0) 7 days ago k8s_install-cni-plugin_kube-flannel-ds-gpnpx_kube-flannel_c6a1656c-d0cf-4026-b0d7-ff8885f24c1a_0
[root@k8snode02 ~]#
[root@k8snode02 ~]#
[root@k8snode02 ~]# route
-bash: route: command not found
[root@k8snode02 ~]# ip a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
valid_lft forever preferred_lft forever
inet6 ::1/128 scope host
valid_lft forever preferred_lft forever
2: ens33: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
link/ether 00:0c:29:a4:87:a1 brd ff:ff:ff:ff:ff:ff
inet 192.168.7.102/24 brd 192.168.7.255 scope global noprefixroute ens33
valid_lft forever preferred_lft forever
inet6 fe80::20c:29ff:fea4:87a1/64 scope link noprefixroute
valid_lft forever preferred_lft forever
3: ens36: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
link/ether 00:0c:29:a4:87:ab brd ff:ff:ff:ff:ff:ff
inet 192.168.157.148/24 brd 192.168.157.255 scope global noprefixroute dynamic ens36
valid_lft 1193sec preferred_lft 1193sec
inet6 fe80::ba59:a533:42da:cbfc/64 scope link noprefixroute
valid_lft forever preferred_lft forever
4: docker0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc noqueue state DOWN group default
link/ether 02:42:e1:ee:f1:b8 brd ff:ff:ff:ff:ff:ff
inet 172.17.0.1/16 brd 172.17.255.255 scope global docker0
valid_lft forever preferred_lft forever
5: flannel.1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1450 qdisc noqueue state UNKNOWN group default
link/ether fa:c3:b3:14:5d:1b brd ff:ff:ff:ff:ff:ff
inet 10.244.2.0/32 scope global flannel.1
valid_lft forever preferred_lft forever
inet6 fe80::f8c3:b3ff:fe14:5d1b/64 scope link
valid_lft forever preferred_lft forever
6: cni0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1450 qdisc noqueue state UP group default qlen 1000
link/ether aa:6c:34:ed:3b:28 brd ff:ff:ff:ff:ff:ff
inet 10.244.2.1/24 brd 10.244.2.255 scope global cni0
valid_lft forever preferred_lft forever
inet6 fe80::a86c:34ff:feed:3b28/64 scope link
valid_lft forever preferred_lft forever
7: veth3f1fc914@if2: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1450 qdisc noqueue master cni0 state UP group default
link/ether 12:74:54:3c:ef:77 brd ff:ff:ff:ff:ff:ff link-netnsid 0
inet6 fe80::1074:54ff:fe3c:ef77/64 scope link
valid_lft forever preferred_lft forever
8: veth1b04c2fb@if2: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1450 qdisc noqueue master cni0 state UP group default
link/ether 82:01:af:6c:ef:d9 brd ff:ff:ff:ff:ff:ff link-netnsid 1
inet6 fe80::8001:afff:fe6c:efd9/64 scope link
valid_lft forever preferred_lft forever
[root@k8snode02 ~]#
[root@k8snode02 ~]# iptables -L -n
Chain INPUT (policy ACCEPT)
target prot opt source destination
KUBE-NODEPORTS all -- 0.0.0.0/0 0.0.0.0/0 /* kubernetes health check service ports */
KUBE-EXTERNAL-SERVICES all -- 0.0.0.0/0 0.0.0.0/0 ctstate NEW /* kubernetes externally-visible service portals */
KUBE-FIREWALL all -- 0.0.0.0/0 0.0.0.0/0
Chain FORWARD (policy ACCEPT)
target prot opt source destination
KUBE-FORWARD all -- 0.0.0.0/0 0.0.0.0/0 /* kubernetes forwarding rules */
KUBE-SERVICES all -- 0.0.0.0/0 0.0.0.0/0 ctstate NEW /* kubernetes service portals */
KUBE-EXTERNAL-SERVICES all -- 0.0.0.0/0 0.0.0.0/0 ctstate NEW /* kubernetes externally-visible service portals */
DOCKER-USER all -- 0.0.0.0/0 0.0.0.0/0
DOCKER-ISOLATION-STAGE-1 all -- 0.0.0.0/0 0.0.0.0/0
ACCEPT all -- 0.0.0.0/0 0.0.0.0/0 ctstate RELATED,ESTABLISHED
DOCKER all -- 0.0.0.0/0 0.0.0.0/0
ACCEPT all -- 0.0.0.0/0 0.0.0.0/0
ACCEPT all -- 0.0.0.0/0 0.0.0.0/0
FLANNEL-FWD all -- 0.0.0.0/0 0.0.0.0/0 /* flanneld forward */
Chain OUTPUT (policy ACCEPT)
target prot opt source destination
KUBE-SERVICES all -- 0.0.0.0/0 0.0.0.0/0 ctstate NEW /* kubernetes service portals */
KUBE-FIREWALL all -- 0.0.0.0/0 0.0.0.0/0
Chain DOCKER (1 references)
target prot opt source destination
Chain DOCKER-ISOLATION-STAGE-1 (1 references)
target prot opt source destination
DOCKER-ISOLATION-STAGE-2 all -- 0.0.0.0/0 0.0.0.0/0
RETURN all -- 0.0.0.0/0 0.0.0.0/0
Chain DOCKER-ISOLATION-STAGE-2 (1 references)
target prot opt source destination
DROP all -- 0.0.0.0/0 0.0.0.0/0
RETURN all -- 0.0.0.0/0 0.0.0.0/0
Chain DOCKER-USER (1 references)
target prot opt source destination
RETURN all -- 0.0.0.0/0 0.0.0.0/0
Chain FLANNEL-FWD (1 references)
target prot opt source destination
ACCEPT all -- 10.244.0.0/16 0.0.0.0/0 /* flanneld forward */
ACCEPT all -- 0.0.0.0/0 10.244.0.0/16 /* flanneld forward */
Chain KUBE-EXTERNAL-SERVICES (2 references)
target prot opt source destination
Chain KUBE-FIREWALL (2 references)
target prot opt source destination
DROP all -- 0.0.0.0/0 0.0.0.0/0 /* kubernetes firewall for dropping marked packets */ mark match 0x8000/0x8000
DROP all -- !127.0.0.0/8 127.0.0.0/8 /* block incoming localnet connections */ ! ctstate RELATED,ESTABLISHED,DNAT
Chain KUBE-FORWARD (1 references)
target prot opt source destination
DROP all -- 0.0.0.0/0 0.0.0.0/0 ctstate INVALID
ACCEPT all -- 0.0.0.0/0 0.0.0.0/0 /* kubernetes forwarding rules */ mark match 0x4000/0x4000
ACCEPT all -- 0.0.0.0/0 0.0.0.0/0 /* kubernetes forwarding conntrack rule */ ctstate RELATED,ESTABLISHED
Chain KUBE-KUBELET-CANARY (0 references)
target prot opt source destination
Chain KUBE-NODEPORTS (1 references)
target prot opt source destination
Chain KUBE-PROXY-CANARY (0 references)
target prot opt source destination
Chain KUBE-SERVICES (2 references)
target prot opt source destination
[root@k8snode02 ~]#
```
Analysis shows that in a normal cluster, k8s can see that there are two initialization containers in the node node that are generated by copying files, while the others are all in the up state
## Recurrence of destructive operations
Directly turn off the virtual machine power!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
## Fault viewing
### master
```powershell
[root@k8smaster ~]# docker ps
Cannot connect to the Docker daemon at unix:///var/run/docker.sock. Is the docker daemon running?
[root@k8smaster ~]# ip a
具体见:https://github.com/heike-07/K8s-study 或 https://gitee.com/heike07code/K8s-study
0.1-K8s rescue plan.md 部分~,篇幅过长不展示。
另外支持作者程序:
一个用于mysql备份的整合 star~
文章来源:https://www.oschina.net/news/254216/backup-tools-backupserenity
通知:Backup_Tools 数据库备份软件 正式更名为 BackupSerenity
backup 备份 serenity 宁静 意为 宁静的备份…… 是一个回馈开源的 MySQL 数据库备份工具~
对此录制了该软件的视频讲解,已经上传至 B 站,感谢大家支持!
Backupserenity 开源软件视频讲解合计点击下方进入:
通过 go 封装的一套基于 MySQL 备份的思路工具,可以实现以下内容:
该程序为 mysqldump 原生的全库数据库备份程序。
该程序为 mysqldump 原生的单个数据库备份程序。
该程序为多线程全量数据库备份程序
该程序为多线程单库全量数据库备份程序
该程序为 XtraBackup 增量备份程序,用于提供 MySQL 数据库的全量 + 增量备份程序
全量 增量 单库备份 多库备份 全库备份 binlog 备份 文件备份 应该差不多能覆盖所有的 MySQL 备份需求了吧。
具体来项目查看 readme.md 欢迎 star 因为用到的都是开源的技术整理了一下也算是回馈开源 也是第一次回馈开源
GitHub 链接:https://github.com/heike-07/Backup-tools
感谢大家支持!
欢迎大家 star ⭐ 谢谢! thanks
文章来源: https://www.oschina.net/news/251231
通过 go 封装的一套基于 MySQL 备份的思路工具,可以实现以下内容:
该程序为 mysqldump 原生的全库数据库备份程序。
该程序为 mysqldump 原生的单个数据库备份程序。
该程序为多线程全量数据库备份程序
该程序为多线程单库全量数据库备份程序
该程序为 XtraBackup 增量备份程序,用于提供 MySQL 数据库的全量 + 增量备份程序
全量 增量 单库备份 多库备份 全库备份 binlog 备份 文件备份 应该差不多能覆盖所有的 MySQL 备份需求了吧。
具体来项目查看 readme.md 欢迎 star 因为用到的都是开源的技术整理了一下也算是回馈开源 也是第一次回馈开源
GitHub 链接:https://github.com/heike-07/Backup-tools
感谢大家支持!
作者:Heike07 版权所有
# 登陆ssh
λ ssh root@192.168.30.174
The authenticity of host '192.168.30.174 (192.168.30.174)' can't be established.
ECDSA key fingerprint is SHA256:Mw70Sv5uqPlHxhZbWb8JXcE8ckge4cMIw/CsHMZmAL4.
Are you sure you want to continue connecting (yes/no/[fingerprint])? yes
Warning: Permanently added '192.168.30.174' (ECDSA) to the list of known hosts.
root@192.168.30.174's password:
Last login: Tue Nov 1 16:13:34 2022
[root@localhost ~]#
# 安装telnet xinetd
yum -y install telnet* xinetd*
root@localhost ~]# cat /etc/securetty | grep pts
pts/1
pts/2
pts/3
pts/4
pts/5
[root@localhost ~]#
# 启动tlenet
[root@localhost ~]# systemctl start telnet.socket
[root@localhost ~]# systemctl status telnet.socket
# 测试连接作为网络中断后的第二连接方式(非常重要)
S:\cmder
λ telnet 192.168.7.177
Kernel 3.10.0-1127.el7.x86_64 on an x86_64
localhost login: root
Password:
Last login: Fri Nov 4 10:20:51 from ::ffff:192.168.7.1
[root@localhost ~]#
# 查看ssh版本
[root@localhost ~]# ssh -V
OpenSSH_7.4p1, OpenSSL 1.0.2k-fips 26 Jan 2017
# 安装编译相关资源
[root@localhost openssh-9.0p1]# yum install wget tar make gcc openssl-devel zlib-devel
# 查看sshrpm安装情况
[root@localhost ~]# rpm -qa | grep ssh
openssh-server-7.4p1-21.el7.x86_64
openssh-7.4p1-21.el7.x86_64
openssh-clients-7.4p1-21.el7.x86_64
libssh2-1.8.0-3.el7.x86_64
# 将原有进行备份
[root@localhost ~]# mv /etc/ssh /etc/ssh.bak
# 删除ssh
[root@localhost ~]# yum remove openssh-7.4p1
# 查看删除结果
[root@localhost ~]# rpm -qa | grep ssh
libssh2-1.8.0-3.el7.x86_64
# 下载最新版本openssh 9.0p1
[root@localhost etc]# cd ~
[root@localhost ~]# wget https://mirrors.sonic.net/pub/OpenBSD/OpenSSH/portable/openssh-9.0p1.tar.gz --no-check-cert ificate
# 解压缩
[root@localhost ~]# tar xzf openssh-9.0p1.tar.gz
[root@localhost ~]# cd openssh-9.0p1
[root@localhost openssh-9.0p1]#
# 进行预编译生成make文件
[root@localhost openssh-9.0p1]# ./configure --sysconfdir=/etc/ssh
# 查看编译结果
OpenSSH has been configured with the following options:
User binaries: /usr/local/bin
System binaries: /usr/local/sbin
Configuration files: /etc/ssh
Askpass program: /usr/local/libexec/ssh-askpass
Manual pages: /usr/local/share/man/manX
PID file: /var/run
Privilege separation chroot path: /var/empty
sshd default user PATH: /usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin
Manpage format: doc
PAM support: no
OSF SIA support: no
KerberosV support: no
SELinux support: no
libedit support: no
libldns support: no
Solaris process contract support: no
Solaris project support: no
Solaris privilege support: no
IP address in $DISPLAY hack: no
Translate v4 in v6 hack: yes
BSD Auth support: no
Random number source: OpenSSL internal ONLY
Privsep sandbox style: seccomp_filter
PKCS#11 support: yes
U2F/FIDO support: yes
Host: x86_64-pc-linux-gnu
Compiler: cc
Compiler flags: -g -O2 -pipe -Wall -Wpointer-arith -Wuninitialized -Wsign-compare -Wformat-security -Wsizeof-pointer-memaccess -Wno-pointer-sign -Wno-unused-result -fno-strict-aliasing -D_FORTIFY_SOURCE=2 -ftrapv -fno-builtin-memset -fstack-protector-strong -fPIE
Preprocessor flags: -D_XOPEN_SOURCE=600 -D_BSD_SOURCE -D_DEFAULT_SOURCE
Linker flags: -Wl,-z,relro -Wl,-z,now -Wl,-z,noexecstack -fstack-protector-strong -pie
Libraries: -lcrypto -ldl -lutil -lz -lcrypt -lresolv
# 编译
make
# 安装
make install
# 查看安装结果
(cd openbsd-compat && make)
make[1]: Entering directory `/root/openssh-9.0p1/openbsd-compat'
make[1]: Nothing to be done for `all'.
make[1]: Leaving directory `/root/openssh-9.0p1/openbsd-compat'
/usr/bin/mkdir -p /usr/local/bin
/usr/bin/mkdir -p /usr/local/sbin
/usr/bin/mkdir -p /usr/local/share/man/man1
/usr/bin/mkdir -p /usr/local/share/man/man5
/usr/bin/mkdir -p /usr/local/share/man/man8
/usr/bin/mkdir -p /usr/local/libexec
/usr/bin/mkdir -p -m 0755 /var/empty
/usr/bin/install -c -m 0755 -s ssh /usr/local/bin/ssh
/usr/bin/install -c -m 0755 -s scp /usr/local/bin/scp
/usr/bin/install -c -m 0755 -s ssh-add /usr/local/bin/ssh-add
/usr/bin/install -c -m 0755 -s ssh-agent /usr/local/bin/ssh-agent
/usr/bin/install -c -m 0755 -s ssh-keygen /usr/local/bin/ssh-keygen
/usr/bin/install -c -m 0755 -s ssh-keyscan /usr/local/bin/ssh-keyscan
/usr/bin/install -c -m 0755 -s sshd /usr/local/sbin/sshd
/usr/bin/install -c -m 4711 -s ssh-keysign /usr/local/libexec/ssh-keysign
/usr/bin/install -c -m 0755 -s ssh-pkcs11-helper /usr/local/libexec/ssh-pkcs11-helper
/usr/bin/install -c -m 0755 -s ssh-sk-helper /usr/local/libexec/ssh-sk-helper
/usr/bin/install -c -m 0755 -s sftp /usr/local/bin/sftp
/usr/bin/install -c -m 0755 -s sftp-server /usr/local/libexec/sftp-server
/usr/bin/install -c -m 644 ssh.1.out /usr/local/share/man/man1/ssh.1
/usr/bin/install -c -m 644 scp.1.out /usr/local/share/man/man1/scp.1
/usr/bin/install -c -m 644 ssh-add.1.out /usr/local/share/man/man1/ssh-add.1
/usr/bin/install -c -m 644 ssh-agent.1.out /usr/local/share/man/man1/ssh-agent.1
/usr/bin/install -c -m 644 ssh-keygen.1.out /usr/local/share/man/man1/ssh-keygen.1
/usr/bin/install -c -m 644 ssh-keyscan.1.out /usr/local/share/man/man1/ssh-keyscan.1
/usr/bin/install -c -m 644 moduli.5.out /usr/local/share/man/man5/moduli.5
/usr/bin/install -c -m 644 sshd_config.5.out /usr/local/share/man/man5/sshd_config.5
/usr/bin/install -c -m 644 ssh_config.5.out /usr/local/share/man/man5/ssh_config.5
/usr/bin/install -c -m 644 sshd.8.out /usr/local/share/man/man8/sshd.8
/usr/bin/install -c -m 644 sftp.1.out /usr/local/share/man/man1/sftp.1
/usr/bin/install -c -m 644 sftp-server.8.out /usr/local/share/man/man8/sftp-server.8
/usr/bin/install -c -m 644 ssh-keysign.8.out /usr/local/share/man/man8/ssh-keysign.8
/usr/bin/install -c -m 644 ssh-pkcs11-helper.8.out /usr/local/share/man/man8/ssh-pkcs11-helper.8
/usr/bin/install -c -m 644 ssh-sk-helper.8.out /usr/local/share/man/man8/ssh-sk-helper.8
/usr/bin/mkdir -p /etc/ssh
ssh-keygen: generating new host keys: RSA DSA ECDSA ED25519
/usr/local/sbin/sshd -t -f /etc/ssh/sshd_config
[root@localhost openssh-9.0p1]#
# 复制生成SSHD服务文件 [root@localhost openssh-9.0p1]# cp -a contrib/redhat/sshd.init /etc/init.d/sshd # 复制生成ssh-keygen到/usr/bin下 [root@localhost openssh-9.0p1]# cp -a /usr/local/bin/ssh-keygen /usr/bin/ssh-keygen # 查看安装结果 [root@localhost openssh-9.0p1]# ll /usr/local/sbin/sshd -rwxr-xr-x 1 root root 904160 Nov 4 10:32 /usr/local/sbin/sshd [root@localhost openssh-9.0p1]# # 修改主程序位置 [root@localhost openssh-9.0p1]# cat /etc/init.d/sshd | grep SSHD= SSHD=/usr/local/sbin/sshd [root@localhost openssh-9.0p1]# # 设置开机启动 [root@localhost openssh-9.0p1]# chkconfig --add sshd [root@localhost openssh-9.0p1]# chkconfig sshd on [root@localhost openssh-9.0p1]# systemctl daemon-reload [root@localhost openssh-9.0p1]# systemctl restart sshd [root@localhost openssh-9.0p1]# systemctl status sshd # 设置root可以远程登陆 [root@localhost openssh-9.0p1]# cat /etc/ssh/sshd_config | grep PermitRootLogin PermitRootLogin yes # 重启sshd服务 [root@localhost openssh-9.0p1]# systemctl restart sshd [root@localhost openssh-9.0p1]# systemctl status sshd
# 测试ssh连接情况
λ ssh root@192.168.30.174
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@ WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED! @
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
IT IS POSSIBLE THAT SOMEONE IS DOING SOMETHING NASTY!
Someone could be eavesdropping on you right now (man-in-the-middle attack)!
It is also possible that a host key has just been changed.
The fingerprint for the ECDSA key sent by the remote host is
SHA256:jK6UYZCyzit0vG6RWF3Bta9pPRabEdc3zdDDtnmp3Pk.
Please contact your system administrator.
Add correct host key in C:\\Users\\ASUS/.ssh/known_hosts to get rid of this message.
Offending ECDSA key in C:\\Users\\ASUS/.ssh/known_hosts:48
ECDSA host key for 192.168.30.174 has changed and you have requested strict checking.
Host key verification failed.
# 删除原有ssh记录公钥删除方式见常见错误
S:\cmder
λ vim C:\\Users\\ASUS/.ssh/known_hosts
# 测试登陆(必须测试,有问题看常见错误)
S:\cmder
λ ssh root@192.168.30.174
The authenticity of host '192.168.30.174 (192.168.30.174)' can't be established.
ECDSA key fingerprint is SHA256:jK6UYZCyzit0vG6RWF3Bta9pPRabEdc3zdDDtnmp3Pk.
Are you sure you want to continue connecting (yes/no/[fingerprint])? yes
Warning: Permanently added '192.168.30.174' (ECDSA) to the list of known hosts.
root@192.168.30.174's password:
Last login: Fri Nov 4 10:21:34 2022 from ::ffff:192.168.7.1
[root@localhost ~]# ssh -V
OpenSSH_9.0p1, OpenSSL 1.0.2k-fips 26 Jan 2017
[root@localhost ~]#
# telnet服务停用
[root@localhost openssh-9.0p1]# systemctl status telnet.socket
[root@localhost openssh-9.0p1]# systemctl stop telnet.socket
[root@localhost openssh-9.0p1]# systemctl status telnet.socket
# 测试telnet
S:\cmder
λ telnet 192.168.7.177
Connecting To 192.168.7.177...Could not open connection to the host, on port 23: Connect failed
登陆时如果提示这个是因为SSH加密算法失效了,因为升级了以后根的SSH加密是不一样删除客户端记录的公钥即可重新连接。
# 删除相关IP地址一整行的公钥记录即可
λ vim C:\\Users\\ASUS/.ssh/known_hosts
192.168.30.174 ecdsa-sha2-nistp256 AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBB5qEg9PfFt8/5WFUHIrjDPJJLptw9oFZrUfl4ommrzbjFESVQhdAvAmhJcDd5mRKv5GZcTFU4Sd72TRck6ngdQ=
查看编译时是否将–sysconfdir=/etc/ssh参数进行添加,查看服务文件定义,可以看到当前为/etc/ssh
# 查看服务文件指定配置文件位置
[root@localhost openssh-9.0p1]# cat /etc/init.d/sshd | grep restorecon
if [ -x /sbin/restorecon ]; then
/sbin/restorecon /etc/ssh/ssh_host_rsa_key.pub
/sbin/restorecon /etc/ssh/ssh_host_dsa_key.pub
/sbin/restorecon /etc/ssh/ssh_host_ecdsa_key.pub
[root@localhost openssh-9.0p1]#
作者:Heike07 版权所有
本次教程为mysql的RPM安装原创教程,如果有不对的地方欢迎指出!
欢迎关注heike07~
准备文件
tar -xvf mysql-5.7.31-1.el7.x86_64.rpm-bundle.tar(需要在mysql官方下载)
开始安装
删除原有包 mariadb rpm(演示的是系统预装情况,根据自己的情况进行处理)
rpm -qa|grep mariad
rpm -e –nodeps mariadb-libs-5.5.56-2.el7.x86_64
rpm -ivh mysql-community-common-5.7.31-1.el7.x86_64.rpm
rpm -ivh mysql-community-libs-5.7.31-1.el7.x86_64.rpm
rpm -ivh mysql-community-client-5.7.31-1.el7.x86_64.rpm
rpm -ivh mysql-community-server-5.7.31-1.el7.x86_64.rpm –force –nodeps
rpm -ivh mysql-community-devel-5.7.31-1.el7.x86_64.rpm
启动mysql
systemctl start mysqld
开机启动设置
systemctl enable mysqld
查看mysql状态 正常应该是active
systemctl status mysqld
初始化配置
查看临时密码
grep ‘temporary password’ /var/log/mysqld.log
初始密码进入
mysql -uroot -p
设置root本地账户密码
ALTER USER ‘root’@’localhost’ IDENTIFIED BY ‘your_password’
设置root远程账户密码以及权限
GRANT ALL PRIVILEGES ON . TO ‘root’@’%’ IDENTIFIED BY ‘your_password’ WITH GRANT OPTION
更新权限表
flush privileges
配置防火墙
firewall-cmd –permanent –add-port=3306/tcp
firewall-cmd –reload
用链接工具测试 作者:heike07 https://www.bilibili.com/read/cv11699513 出处:bilibili

用链接工具测试
作者:heike07 https://www.bilibili.com/read/cv11699513 出处:bilibili
# 构建私有离线YUM源仓库(可扩展)
# 抛出一个问题,我现在要安装glances 需要几种方式呢?
# 为了保证节目效果,脚本采用一体成型,即写完脚本直接录制,思路即实验构建
# 遇到报错,现场解决!哈哈哈!沉浸式第一视角。
# Centos 7.9 2009
# 脚本文件也需要传送门!
# 方式一:
2、网络yum源的形式,直接从ustc 构建base 和epel的源
优点:方便快捷,一条命令即可安装,不用担心环境不一致。
缺点:需要网络。
具体看评论区第一条留言传送门
https://www.bilibili.com/video/BV1Uf4y1t7Pc?spm_id_from=333.999.0.0
# 方式二:
1、第二种方式,可以采用构建离线的RPM环境
优点:可以写成脚本安装,安装命令只有一条
缺点:需要完全一致的环境,且没有别的rpm包的情况
具体看评论区第一条留言传送门
# 方式三:
3、今天要讲的方式,从官网同步,然后自己做repo源
优点:方便快捷,可以离线,不需要环境一致,自适应。
缺点:需要一定的知识储备。
# 3.0
3.00 首先我们讲一下实验环境,mysql2 为 我们的yum源离线提供的机器
mysql1 为我们的客户机器。
# 3.1
3.1 首先确定ustc有没有我们要装的源,
发现在epel里有,那么我们就要把epel 下载下来。
https://mirrors.ustc.edu.cn/
3.1.2 把将本地的base 修改ustc 。
# 3.2
3.2 同步epel源
3.2.1 安装相关的软件包(有网的情况)
yum install yum-utils createrepo httpd
启动httpd服务并测试!
# 注意,防火墙!! 端口设置,curl正常访问,跨机器需要防火墙开通端口,selinux
reposync -n --repoid=epel --repoid=epel -p /var/www/html/my_repo_server/
同步时间有点长,跳过一下时间。
3.2.2 进入到epel 构建repo 的元数据
createrepo .
# 3.3
3.3 制作repo文件,用于构建私有离线yum仓库
vim my_repo_server.repo
[epel]
name=CentOS-$releasever - epel
baseurl=http://ip地址/my_repo_server/epel/
gpgcheck=0
enabled=1
# 3.4
3.4 测试安装glances 查看是否可以安装
3.4.1 通过http的方式下载到本地repo文件
cd /etc/yum.repos.d
rename repo repotmp *
curl http://192.168.116.129/my_repo_server.repo -O
3.4.2 yum建立缓存
yum makecache
3.4.3 安装glances
# 3.5
3.5.0
yum 回退
yum history list 列出通过Yum执行过的操作
yum history info 7 查看ID 7 的安装过程
yum history undo 7 卸载
3.5.1 同步
# ing
reposync -n --repoid=base --repoid=base -p /var/www/html/my_repo_server/
reposync -n --repoid=updates --repoid=updates -p /var/www/html/my_repo_server/
reposync -n --repoid=extras --repoid=extras -p /var/www/html/my_repo_server/
3.5.2 讲一下自定义节点以及后续扩展
[base]
name=CentOS-$releasever - Base
baseurl=http://ip地址/my_repo_server/base/
gpgcheck=0
enabled=1
[epel]
name=CentOS-$releasever - epel
baseurl=http://ip地址/my_repo_server/epel/
gpgcheck=0
enabled=1
[updates]
name=CentOS-$releasever - Updates
baseurl=http://ip地址/my_repo_server/updates/
gpgcheck=0
enabled=1
[extras]
name=CentOS-$releasever - Extras
baseurl=http://ip地址/my_repo_server/extras/
gpgcheck=0
enabled=1
# 3.6
3.6 讲一个zabbix的ustc的源(自定义的源)
https://repo.zabbix.com/zabbix/
3.6.1 查看zabbix的源位置
3.6.2 下载下来
rpm -Uvh https://repo.zabbix.com/zabbix/6.0/rhel/7/x86_64/zabbix-release-6.0-1.el7.noarch.rpm
3.6.3 同步我们的源,为什么用zabbix 只是因为包少
reposync -n --repoid=zabbix -p /var/www/html/my_repo_server/
3.6.4 构建repo文件
3.6.5 在clinet客户端 更新我们的repo文件
3.6.6 尝试安装zabbix-agent 安装成功,只是为了演示自定义源,其他不做过多展示。
# 3.7
3.7 总结
1. 我们做一个离线的私有的可以自定义的yum源,扩展的。
2. base epel 自定义 zabbix-agent
3. http selinux firewall ss
heike07 B站~
运维!要求会的东西比较多,你会的越多 你的思路就会越开放,可能别人解决问题时间比你要长。 作者:heike07 https://www.bilibili.com/read/cv15352515 出处:bilibili